Autor Zpráva
sotek
Profil *
Ahoj,
nejde nějak nastavit pro celý javascript kód obecně (nějakou nadřazenou funkcí běžící na pozadí stránky), aby v případě, že v průběhu libovolné funkce, která bude pracovat s getElementById() nebo případně i s getElementsByTagName() to nevyhodilo hlášku v případě, že tento objekt nenajde? Jde to nebo musím všude dát podmínku?

Příklad:
aby vždy místo zápisu:
function hide() {
if (document.getElementById('neco1')) {
document.getElementById('neco1').style.color= 'black';
document.getElementById('neco1').style.display= 'block';
}
}

stačilo rovnou:
function hide() {
document.getElementById('neco1').style.color= 'black';
document.getElementById('neco1').style.display= 'block';
}

Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
roberta
Profil
asi to neide. najprv to otestuj, či je objekt rovný hodnote null...
Witiko
Profil
Můžeš to obalit do try{}catch(error){}, ale testování je podle mého čistší způsob zápisu.
Chamurappi
Profil
Reaguji na sotka:
Můžeš si udělat vlastní funkci, která v případě nenalezení elementu podle ID vrátí nějakou jeho objektovou napodobeninu, u které neselže nic z toho, o co se pokoušíš. Ale připadá mi to jako špatný nápad. Podmínka je v tomto případě názorná a optimální.
Darker
Profil
Jak prene je syntaxe try?
Je to:
try{
skusit provest
}
?
A catch(error)je co?
_es
Profil
darker:
A catch(error)je co?
Viď dokumentácia.
Tam bude skript pokračovať v prípade chyby.
Mimochodom, prečo mi nejde vložiť odkaz s url: https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch ?
Chamurappi
Profil
Reaguji na _es:
Mimochodom, prečo mi nejde vložiť odkaz […]
Protože v sandboxu je nahrazování tří teček za trojtečku. Můžeš použít místo jedné z teček entitu ..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0