Stránka 1 z 1

JavaScript - co mi může chybět ?

Napsal: pon 28. bře 2005, 19:57
od TomCZ
Ahoj, nevíte, čím může být způsobeno to, že mi nefunguje tento scripet: http://www.jsmadeeasy.com/javascripts/S ... %20Script/ ???
Objeví se jen nápis "Initializing ..." a dále se ni neděje. Před cca dvěma lety jsem tento script používal ä chodil dobře. Může mi chybět nějaká podpora JS ?

Napsal: pon 28. bře 2005, 20:05
od TomCZ
Tak doplňuji, rozchodil jsem ho v IE6, ale nejde mi v FF 1.0.2

Napsal: pon 28. bře 2005, 22:53
od k23
Chybí podpora DOM, Document Object Model. Je to specifikace, která v zásadě sjednocuje používání Javascriptu tak, aby byl v pořádku interpretován pokud možno všemi prohlížeči.

Napsal: pon 28. bře 2005, 23:08
od TomCZ
Aha, díky, je možné to nějak doinstalovat jako plugin, či nějak podobně ? 8)

Napsal: úte 29. bře 2005, 00:42
od k23
TomCZ píše:Aha, díky, je možné to nějak doinstalovat jako plugin, či nějak podobně ? 8)
ne, bohužel :( je potřeba takový kód přeprogramovat podle specifikace DOM. Zkusím ti to nějak vysvětlit.

Je potřeba psát tak, abys jednoznačně mohl přistupovat k prvkům stránky a ty nějak ovlivňovat (např. při přejetí myši něco zmizet nebo tak). Ale jak? No, právě tohle se snaží řešit DOM, v podstatě jde o to, že každý dokument (rozuměj stránka) je vlastně strom:

Document
+--- nadpis
+--- odstavec
+--- obrázek
+--- odstavec

atd...

pokud postavíš stránku takhle, je to nejen moderní, přehledné, ale dáváš najevo strukturu dokumentu, kterou využiješ například při stylování v CSS a nebo právě u Javasriptu. Pokud každému prvku stránky přidáš atribut ID, což je v tomhle případě jednoznačné jméno prvku (nesmí se tedy opakovat, můžeš k němu přistupovat v Javascriptu přes metody, které vrací referenci podle předaného ID. Je to vlastně potom takové objektové programování.

Příklad:

Kód: Vybrat vše

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xml:lang="cs" lang="cs" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Test</title>
    
    <script charset="utf-8" type="text/javascript">
    /* <![CDATA[ */
      function hide(ID) {
        objekt = document.getElementById(ID);
        objekt.style.display = "none";
      }
      
      function show(ID) {
        objekt = document.getElementById(ID);
        objekt.style.display = "block";
      }
    /* ]]> */
    </script>
    
  </head>
  
  <body>
    <div id="prvni" onmouseover="hide('druhy'); return true;" onmouseout="show('druhy'); return true;">
    Ahoj, jsem nějaký obsah.
    </div>
    <div id="druhy">
    Ahoj, jsem nějaký obsah.
    </div>
  </body>
</html>

Napsal: úte 29. bře 2005, 09:54
od TomCZ
Jinými slovy, ten script by musel být přepsán tak, aby podporoval i FF ?

Napsal: úte 29. bře 2005, 11:31
od zombux
TomCZ píše:Jinými slovy, ten script by musel být přepsán tak, aby podporoval i FF ?
jednak skript, jednak kód stránky. aby to bylo navzájem "kompatibilní". skript musí vědět ke kterým prvkům stránky přistupuješ, a naopak

Napsal: úte 29. bře 2005, 11:56
od TomCZ
No, tak to asi nebude nic pro mne. Domluvím se s kámošem, který mi se stránkami pomáhá.