Nel mio sito allego un file.js esterno.
In questo file esterno ho, alla fine, una chiamata a:
Codice PHP:
function init() {
if (getCookie("contrast") == null ) contrasto = "principal";
else contrasto = getCookie("contrast");
if (contrasto != "principal") setActiveStyleSheet();
}
window.onload = init();
La funzione init() legge un cookie, in cui è impostato che tipo di foglio di stile ha preferito l'utente.
La funzione va benissimo con firefox ed opera, e vi diro, anche per IE!
Solo che IE la fa si funzionare perfettamente ma nel contempo mi segnala un errore javascript . Dice "non implementato".. (fate la prova voi stessi, usate IE, selezionate nel menu il foglio ad alto contrasto e scegliete qualche altra pagina del sito, si verificherà il problema)..
Se anziche scrivere in quel modo scrivo direttamente:
Codice PHP:
window.onload = function() {
if (getCookie("contrast") == null ) contrasto = "principal";
else contrasto = getCookie("contrast");
if (contrasto != "principal") setActiveStyleSheet();
}
Facendo così l'errore IE non lo da piu...
In tutti e tre i browser però si verifica un inghippo:
- l'utente è nella home del mio sito
- Seleziona dal menu il foglio di stile "ad alto contrasto"
- Po sceglie una qualsiasi altra pagina del mio sito, ad esempio clicca su un post per aprirlo
- ...la nuova pagina parte sta per aprirsi ... ma ha il foglio di stile colorato non ad alto contrasto!
- ...ma dopo qualche secondo il foglio di stile diventa ad alto contrasto cosi come aveva selezionato lui!
L'effetto che ne deriva è sgradevole.. Attualmente invece, con tanto di errore fasullo di IE invece, il foglio di stile resta nero anche durante il cambiamento di pagina..
Spero di essermi spiegato... Che fareste?
EDIT: Come non detto... ***PROBLEMA RISOLTO***