mozilla

Compare Revisions

Nefunkční prvky stránky

Change Revisions

Revision 262840:

Revision 262840 by Triceo on

Revision 230301:

Revision 230301 by Triceo on

Title:
Nefunkční prvky stránky
Nefunkční prvky stránky
Slug:
Opravy_chyb_webmasterů/Nefunkční_prvky_stránky
Opravy_chyb_webmasterů/Nefunkční_prvky_stránky
Tags:
Vývoj_pro_web, Webové_standardy
Content:

Revision 262840
Revision 230301
t7    <p>t
8      {{ Následující("Opravy chyb webmasterů:Nefunkční zpracování
> událostí") }} 
9    </p>
10    <p>
11      Problém je ve většině případů způsoben používáním <code>doc
>ument.all</code> a <code>document.layers</code>. Jde o zastaralé  
>objektové modely prvních opravdu použitelných prohlížečů. <code>D 
>ocument.all</code> přišel spolu s MSIE 4, <code>document.layers</ 
>code> 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í. 
12    </p>
13    <p>
14      Jelikož se prohlížeče MSIE 4 a Netscape 4 již prakticky nev
>yskytují, je oprava za použití DOM jednoduchá. Stačí provést v ja 
>vascriptovém kódu následující záměnu: 
15    </p>
16    <ul>
17      <li>
18        <code>document.all.<i>id-objektu</i>.hodnota</code> -&gt;
> <code>document.getElementById("<i>id-objektu</i>").hodnota</code 
>> 
19      </li>
20      <li>
21        <code>document.layers.<i>id-objektu</i>.hodnota</code> -&
>gt; <code>document.getElementById("<i>id-objektu</i>").hodnota</c 
>ode> 
22      </li>
23    </ul>
24    <p>
25      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 JavaScri 
>ptu následující řešení: 
26    </p>
27    <pre>
28var IE=(document.all)?1:0;
29var NS=(document.layers)?1:0;
30var DOM=(document.getElementById)?1:0;
31 
32function GetObject(obj) {
33        if (DOM) myObject=document.getElementById(obj);
34                else if (IE) myObject=eval('document.all.'+obj);
35                        else if (NS) myObject=eval('document.laye
>rs.'+obj); 
36        return myObject;
37}
38</pre>
39    <p>
40      Potom místo <code>document.all</code>, <code>document.layer
>s</code> i <code>document.getElementById</code> stačí používat un 
>iverzální funkci <code>GetObject</code>. Tedy například <code>Get 
>Object("id-objektu").hodnota</code> 
41    </p>
42    <h3 id="Souvisej.C3.ADc.C3.AD_odkazy" name="Souvisej.C3.ADc.C
>3.AD_odkazy"> 
43      Související odkazy
44    </h3>
45    <ul>
46      <li>
47        <a class="external" href="http://www.czilla.cz/podpora/do
>cument-all.html">Document.all - omezená podpora v prohlížečích Mo 
>zilla</a> (czilla.cz) 
48      </li>
49      <li>
50        <a class="external" href="http://www.jakpsatweb.cz/clanky
>/kousek-dom.html">Aspoň kousek DOMu</a> (jakpsatweb.cz) 
51      </li>
52      <li>
53        <a class="external" href="http://www.w3.org/DOM/">W3C Doc
>ument</a> Object Method (w3.org) 
54      </li>
55      <li>
56        <a class="external" href="http://bugzilla.czilla.cz/bugli
>st.cgi?product=Technicka+evangelizace&amp;keywords=te-doc.all&amp 
>;bug_status=UNCONFIRMED,NEW,ASSIGNED,REOPENED">Weby s chybou docu 
>ment.all</a> (Technická evangelizace) 
57      </li>
58    </ul>
59    <p>
60      {{ Následující("Opravy chyb webmasterů:Nefunkční zpracování
> událostí") }} 
61    </p>
62    <div class="originaldocinfo">
63      <h2 id="Informace_o_p.C5.AFvodn.C3.ADm_dokumentu" name="Inf
>ormace_o_p.C5.AFvodn.C3.ADm_dokumentu"> 
64        Informace o původním dokumentu
65      </h2>
66      <ul>
67        <li>Autor: Josef Kotva
68        </li>
69      </ul>
70    </div>

Back to History