sabato, febbraio 09 2008 @ 05:26 CET
Inviato da: Qualsiasi
Visualizzazioni 275
Siccome il Celox non può usare linguaggi server-side per includere un blocco di citazioni random nel suo blog, ecco una veloce e anacronistica soluzione basata solo sul Javascript.
In qualsiasi punto della pagina, inserite il seguente codice:
<div id="random"></div>
<script>
function createRandomQuote() {
var quotes = new Array();
quotes [0] = "Prima citazione";
quotes [1] = "Seconda citazione";
quotes [2] = "Terza citazione";
var indice = Math.floor(Math.random()*(quotes.length))
if (indice>(quotes.length-1)) indice=quotes.length-1;
var finale = document.getElementById("random");
finale.innerHTML="<p onClick="createRandomQuote()">" + quotes[indice] + "</p>";
}
createRandomQuote();
</script>
Questo fa si che si crei un blocco contenente una citazione random fra quelle disponibili (la struttura if serve a debellare un caso, dato per impossibile da alcune fonti, che porterebbe ad un "Undefined" visualizzato a schermo al posto della citazione). Clickando la frase si ri-genererà un altra citazione random, se non vi interessa questa possibilità, l'ultima riga prima della parentesi graffa chiusa, può essere modificata in:
finale.innerHTML="<p>"+quotes[indice]+"</p>";
Torniamo un attimo alla questione dell'Undefined, esso potrebbe presentarsi perchè (da manualistica online) la funzione random genera un numero fra 0 e 1, quindi moltiplicandolo per il numero di elementi del vettore citazioni (in questo caso 3), potrebbe dare come risultato il numero stesso di elementi, nel caso in cui il numero random sia 1. Però si da il caso che i vettori hanno il primo elemento all'indice 0, e l'N-esimo elemento all'indice N-1 (ecco spiegato l'utilizzo del floor, che tronca la parte decimale di un numero riducendolo di fatto al numero intero inferiore), nella remota situazione in cui il numero random risulti 1, andremmo a pescare nel vettore ad un indice non definito, ecco spiegato l'Undefined.