Nonostante a Redmond la pensino diversamente, sembra proprio che Internet Explorer non ne voglia sapere di adeguarsi al mondo che sta tutto intorno.
L’oggetto DOM setAttribute() sul browser Micro$oft funziona a metà. E’ impossibile utilizzarlo nel caso in cui il setting riguardi la dichiarazione style dell’elemento.
Seppure nella guida MSDN l’attributo dovrebbe essere trattato, in realtà questo non va a buon fine, quindi come troppo spesso succede, per far andare la nostra pagina web dobbiamo scrivere delle istruzioni ad hoc per Internet Explorer.
Di seguito un esempio in cui si crea un nuovo div e lo si vuole "nascondere" settando delle adeguate direttive di stile.
function isIE(){
if(document.all){
return true;
}else{
return false;
}
}
function creatediv(){
newdiv = document.createElement("div");
newdiv.setAttribute(‘id’,’MyNewId’);
newdiv.setAttribute(‘style’,’visibility:hidden; display:none’);
if(isIE()){
newdiv.style.visibility = ‘hidden’;
newdiv.style.display = ‘none’;
}
}
Cosa abbiamo fatto? Semplice. Per prima cosa ci siamo creati la solita funzione che permette di sapere se il cliente sta navigando con Inetrnet Explorer. Dopo di che creiamo il nuovo elemento, in questo caso un div.
Usanto setAttribute() gli diamo un id. E questo funzionerà con tutti i browser. Sempre usando lo stesso metodo vogliamo dargli anche uno stile, ma in questo caso l’effetto con Internet Explorer non ci sarà, quindi dovremo usare un DOM 0, che in ogni caso rallenterà l’esecuzione. Ma non sembra ci sia altra soluzione. Almeno al momento…
Buon weekend.
Ciao,
io ho provato a fare una cosa del genere ma non và a buon fine. Ci tengo a precisare che stò usando browser IEmobile.
A quanto pare il problema stà nel fatto che l'elemento div non è stato ancora appeso nel DOM e quindi se provo anche solo a settare l'id in questo modo per l'elemento div il JS fallisce…
Mica ci hai già sbattuto la testa a riguardo?
In ogni caso ottimo lavoro su questo blog