Autor Zpráva
habendorf
Profil
Na Mozille mi nefunguje následující kód:

<span id="idecko"></span>

<script>
document.getElementById("idecko").innerText = Text[i];
</script>


Problém je v tom innerText, Mozilla to asi nechápe, v IE bez problémů. Můžete někdo poradit co s tím?
Yuhů
Profil
Ano, Mozilla nechápe innerText. Je nutno použít innerHTML.

Jak innerText tak innerHTML jsou nestandardní vlastnosti, ale Mozilla má u innerHTML docela dobrou podporu.
llook
Profil
Mozilla to nechápe, stejně tak jako IE nechápe XUL. Prostě innerText je výmysl Microsoftu. Na takové věci se jinak používá DOM. Pracuje se s ním dost jinak, ale má to svoji logiku a dá se na to zvyknout.

Fungovat by mělo tohle:

<script type="text/javascript">
/**
* Něco jako innerText, ale pomocí DOM
*/
function dominnerText(node, text) {
while (node.hasChildNodes()) {
node.removeChild(node.firstChild);
}
node.appendChild(document.createTextNode(text));
}

dominnerText(document.getElementById("idecko"), Text[i]);
</script>
habendorf
Profil
llook: Šlape to bezvadně, díky!!!
Yuhů
Profil
hezký!
Chamurappi
Profil
Mělo by to jít i obecněji:
<script>
if(typeof(HTMLElement) != "undefined" && typeof(document.documentElement.innerText) != "string")
{
	HTMLElement.prototype.__defineSetter__("innerText", function(text)
	{
		while (this.hasChildNodes()) this.removeChild(this.firstChild);
		this.appendChild(document.createTextNode(text));
	})

	HTMLElement.prototype.__defineGetter__("innerText", function()
	{
		return this.textContent;
	})
}
</script>
Příklad použití: viz habendorfův dotaz.

Předpokládám, že jsem právě vytvořil nový rekord v prodlevě mezi založením vlákna a poslední relevantní odpovědí :-)
habendorf
Profil
Chamurappi: Předpokládám, že jsem právě vytvořil nový rekord v prodlevě mezi založením vlákna a poslední relevantní odpovědí :-)

Asi jo :o)
No nepotěšil jsi mě, že jsi vytáhl z hlubin dávnověku na světlo boží můj extrémně lamerský dotaz, ale každý jsme nějak začínal :o)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0