non riesco ad agire sulle regole presenti nel foglio si stile con safari utilizzando il document.styleSheets. ho più fogli linkati nella head di cui uno rel="stylesheet" gli altri rel="alternate stylesheet". abitualmente (funziona con ff ie e opera) utilizzavo questo codice:
document.styleSheets[indice].rules[indice2];
con safari non funziona, mi da un errore value error.... in effetti se faccio un alert con document.styleSheets.length con tutti gli altri browser mi visualizza l'effettivo numero dei fogli di stile mentre con safari mi restituisce 1.
ho provato anche ad utilizzare document.styleSheets.item(), ma niente; ogni numero che metto in item mi restituisce sempre e solo il primo foglio di stile presente nell'head dell'html.
come mai?
esiste un alternativa a document.styleSheets per safari?
molte grazie
questo il codice
Codice PHP:
function inizializza_cookie()
{
var i_cookies=document.cookie;
if (i_cookies.length>0)
{
var css;
var numero_css=0;
if (i_cookies.indexOf("css")!=-1)
{
var foglio_scelto;
(i_cookies.indexOf("alternativo")!=-1) ? foglio_scelto="alternativo" : foglio_scelto="default";
cambia_css(foglio_scelto);
}
if (navigator.userAgent.indexOf("MSIE")<0)
{
(quale_css()=="default") ? css=document.styleSheets[0].rules[0] : css=document.styleSheets[1].rules[0];
}
else
{
(quale_css()=="default") ? css=document.styleSheets[0].CssRules[0] : css=document.styleSheets[1].cssRules[0];
}
var valori=i_cookies.split(";");
for (var i=0;i<valori.length;i++)
{
var coppia=valori[i].split("=");
var stringa=trim(coppia[0]);
if ((stringa!="css") && (stringa!="risoluzione"))
{
if (css.style[stringa]) css.style[stringa]=trim(coppia[1]);
}
}
}
}