Problémy při práci s proměnnými

Tyto problémy vznikají, pokud používáme přístup k proměnným uvnitř JavaScriptu nebo jinde na stránce přes jejich globální referenci. Tu umožňuje MSIE, který automaticky (a chybně) zpřístupňuje všechny proměnné v globálním kontextu. Pokud např. do stránky vložíte obrázek s identifikátorem <img id="mujobrazek">, okamžitě pro JavaScript vzniká proměnná mujobrazek, která na tento obrázek odkazuje. Tento problém lze rozlišit na dvě varianty:

Formuláře

Špatně

HTML:

<input name="jmenopoleformulare" value="hodnota">

JS:

if (jmenopoleformulare.value=="")
    alert("Pole nebylo vyplněno");

Správně

HTML:

<input name="jmenopoleformulare" id="idpoleformulare" value="hodnota">

JS:

if (document.getElementById("idpoleformulare").value=="")
    alert("Pole nebylo vyplněno");

nebo

if (document.forms.jmenopoleformulare.value=="")
    alert("Pole nebylo vyplněno");

Ostatní (např. obrázky)

Špatně

HTML:

<img src="1.gif" id="jednicka" onmouseover="zmen('jednicka')">

JS:

function zmen(co) {
    co.src="2.gif";
}

Správně

HTML:

<img src="1.gif" id="jednicka" onmouseover="zmen('jednicka')">

JS:

function zmen(co) {
    document.getElementById(co).src="2.gif";
}

Související odkazy


Informace o původním dokumentu

  • Autor: Josef Kotva

Document Tags and Contributors

 Contributors to this page: Triceo, Majda
 Last updated by: Triceo,