Opravy chyb webmasterů:Nefunkční prvky stránky
Z MDC
Problém je ve většině případů způsoben používáním document.all a document.layers. Jde o zastaralé objektové modely prvních opravdu použitelných prohlížečů. Document.all přišel spolu s MSIE 4, document.layers přinesl Netscape Communicator 4 v době tzv. "války prohlížečů". Oba modely jsou nestandardní a další verze těchto prohlížeču podporují standardizovaný DOM. Nekvalitní a v řadě případů také zastaralá literatura, nevhodné editory a zažité postupy však tyto modely stále používají.
Jelikož se prohlížeče MSIE 4 a Netscape 4 již prakticky nevyskytují, je oprava za použití DOM jednoduchá. Stačí provést v javascriptovém kódu následující záměnu:
-
document.all.id-objektu.hodnota->document.getElementById("id-objektu").hodnota -
document.layers.id-objektu.hodnota->document.getElementById("id-objektu").hodnota
Pro případ, že i přesto chcete podporovat "čtyřkové" prohlížeče (za cenu ztráty řady vlastností v DOM), se nabízí v JavaScriptu následující řešení:
var IE=(document.all)?1:0;
var NS=(document.layers)?1:0;
var DOM=(document.getElementById)?1:0;
function GetObject(obj) {
if (DOM) myObject=document.getElementById(obj);
else if (IE) myObject=eval('document.all.'+obj);
else if (NS) myObject=eval('document.layers.'+obj);
return myObject;
}
Potom místo document.all, document.layers i document.getElementById stačí používat univerzální funkci GetObject. Tedy například GetObject("id-objektu").hodnota
[editovat] Související odkazy
- Document.all - omezená podpora v prohlížečích Mozilla (czilla.cz)
- Aspoň kousek DOMu (jakpsatweb.cz)
- W3C Document Object Method (w3.org)
- Weby s chybou document.all (Technická evangelizace)