javascript style.width non funziona in firefox con doctype di transizione
-
20-08-2019 - |
Domanda
Ho uno script che anima un piccolo DIV che appare sulla pagina. Funziona tutto bene in IE e in FF se rimuovo DOCTYPE, ma quando DOCTYPE è XHTML / Transizionale, in Firefox la larghezza non cambia.
this.container.style.visibility = "visible";
alert("this.container.style.width before = " + this.container.style.width)
this.container.style.width = this.width;
alert("this.container.style.width after = " + this.container.style.width);
this.container.style.height = this.height;
In IE e in FF senza DOCTYPE, il primo avviso indica 0 e il secondo indica 320 (che è la larghezza impostata altrove nel codice)
in FF, con DOCTYPE su XHTML / Transizionale, entrambi gli avvisi mostrano 0. Hai idea di cosa sta succedendo qui? Sto pensando che potrei aver bisogno di impostare esplicitamente posizioni sui DIV in Transitorio, ma non sono sicuro.
Soluzione
Hai provato a impostare:
this.container.style.visibility = "visible";
alert("this.container.style.width before = " + this.container.style.width);
this.container.style.width = this.width + 'px';
alert("this.container.style.width after = " + this.container.style.width);
this.container.style.height = this.height + 'px';
//Note the 'px' above
Trovo che provare a impostare una larghezza / altezza di un numero, senza le unità, possa causare problemi.
Altri suggerimenti
Puoi usare:
document.getElementById("td").style.visibility="hidden";
document.getElementById("td").style.display="none";
invece della proprietà width.
Funziona!