Warning: strpos(): needle is not a string or an integer in /membri2/drudo/blog-r/index.php on line 31

Warning: strpos(): needle is not a string or an integer in /membri2/drudo/blog-r/index.php on line 37
blog ¦ drudo (-rw-r--r--)
 
Blogroll in javascript per S.P.B. e non solo...
Era da un po' che cercavo di rendere casuale l' ordine di una lista di link tramite JavaScript, cioè realizzare un così detto blogroll come quello che implementa il blasonato WordPress.

La scelta di scriverlo in JavaScript non è del tutto sconsiderata come molti potranno pensare :-P ma è stata dettata dal fatto che Simple PHP Blog non ha la possibilità di usare "plug-in" quindi realizzare il blogroll in PHP avrebbe reso necessario la modifica di file sorgenti, cosa che ho voluto appunto evitare; oltretutto è possibile inserire codice JS all' interno di un "blocco" di S.P.B., cosa molto comoda per chi questo blog.

Ora non essendo affatto capace di scrivere in JS sono andato alla ricerca di porzioni di codice in giro per il web, finchè mi sono imbattutto nel fornitissimo forum di Html.it dove un utente ha scritto due righe veloci... mi perdoni l' autore ma non riesco più a trovare il thread originale!

Ad ogni modo ecco il codice di esempio (non molto elegante direi, ma ohibò funiona) da inserire in un blocco dentro ai tag [ html]:

<script type="text/javascript" language="javascript">
<!--
function blog_roll() {
var links = new Array();
links[0]="<a href=\"http://sito1.com\" title=\"titolo1\">Link sito 1</a>";
links[1]="<a href=\"http://sito2.com\" title=\"titolo2\">Link sito 2</a>";
links[2]="<a href=\"http://sito3.com\" title=\"titolo3\">Link sito 3</a>";
links[3]="<a href=\"http://sito4.com\" title=\"titolo4\">Link sito 4</a>";

var lgt = links.length;
var rndArr = new Array(lgt);

for (n=0;n<lgt;n++) {
var x = Math.floor(((Math.random())*lgt));
if(rndArr[x] == undefined) {
document.write(links[x]+"<br />");
rndArr[x] = " ";
}
else n--;
}
}
blog_roll();
//-->
</script>
<noscript>
<a href=\"http://sito1.com\" title=\"titolo1\">Link sito 1</a>
<br />
<a href=\"http://sito2.com\" title=\"titolo2\">Link sito 2</a>
<br />
<a href=\"http://sito3.com\" title=\"titolo3\">Link sito 3</a>
<br />
<a href=\"http://sito4.com\" title=\"titolo4\">Link sito 4</a>
</noscript>


Ad ogni refresh della pagina i link verranno mescolati in modo casuale, mentre nel caso in cui il supporto JavaScript del browser fosse disabilitato lo script visualizzarà lo stesso la lista, ma nell' ordine stabilito nel tag <noscript>.

Se qualcuno più avezzo di me nello scrivere JS stesse leggendo il codice inorridito, lo pregherei di dare qualche suggerimento :-)

Un esempio d' uso lo potete vedere nella colonna quì a fianco in "Trattano di S.P.B.".

IE7 versione 0.8 alpha
Dean Edwards ha rilasciato una nuova versione alpha del suo progetto ie7, una raccolta di JavaScript che sopperisce, o cerca di farlo, alle gravi lacune del browser di casa m$ nel supporto dei CSS.

Usarlo è oltremodo semplice: una volta uppato tutto, basta inserire nell' head della pagina web una cosa del tipo:
<!-- compliance patch for microsoft browsers -->
<!--[if lt IE 7]>
<script src="/ie7/ie7-standard-p.js" type="text/javascript">
</script>
<![endif]-->

Per maggiori info date un'occhio alla home del progetto:
http://dean.edwards.name/IE7/

Aggiungere smile in una textarea
Uno dei problemi più comuni nell'inserire smiles (faccine) in una textarea attarverso JavaScript è quello dell'inserimento nella stessa posizione dove è presente il cursore stesso!
Normalmente infatti vengono posizionati alla fine del testo, ignorando appunto la posizione del cursore.

Per ovviare a questo, una delle soluzioni possibili, è lo scopiazzamento della funzione AddText presente nel forum Snitz.

Visualizza la funzione

Per poi utilizzarla basta inserire nel body della pagina web questo codice:

<script language="Javascript" type="text/javascript">
<!-- hide
function insertsmilie(smilieface) {
AddText(smilieface);
}
// -->
</script>


Per richiamare la funzione poi basta inserire nel link dello smile (es.):

href="Javascript:insertsmilie(' :) ')

Spero di essere stato d'aiuto a qualcuno :)



Indietro