[JS] skrypt a standardy

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
Roberto
Nowy
Nowy
Posty: 38
Rejestracja: czw paź 20, 2005 4:04 pm

[JS] skrypt a standardy

Post autor: Roberto »

Witam, próbuję przerobić sobie prostą przeglądarkę zdjęć jaką znalazłem w sieci, jednak jeden drobny szczegół burzy mój plan zrobienia jej zgodnie z xhtml ;)

Tak to wygląda w tej chwili:

Kod: Zaznacz cały

<script type="text/javascript">
<!--

var nr = 0;
var id_auto = 0;
var id_przejscie = 0;
var przejscie = false;

function wyswietl(n)
{
  if (przejscie) { przejscie = false; return }

  if (n < 0) n = 0;
  if (n > document.przegladarka.obrazki.length-1) n = document.przegladarka.obrazki.length-1;
  if (document.images) document.images['img'].src = document.przegladarka.obrazki.options[n].value;
  nr = n;
  document.przegladarka.obrazki.options[n].selected = true;

  if (nr == 0)
  {
    document.przegladarka.poczatek.disabled = true;
    document.przegladarka.poprzedni.disabled = true;
    document.przegladarka.nastepny.disabled = false;
    document.przegladarka.koniec.disabled = false;
  }
  else if (nr == document.przegladarka.obrazki.length-1)
  {
    document.przegladarka.poczatek.disabled = false;
    document.przegladarka.poprzedni.disabled = false;
    document.przegladarka.nastepny.disabled = true;
    document.przegladarka.koniec.disabled = true;
  }
  else
  {
    document.przegladarka.poczatek.disabled = false;
    document.przegladarka.poprzedni.disabled = false;
    document.przegladarka.nastepny.disabled = false;
    document.przegladarka.koniec.disabled = false;
  }

  document.przegladarka.obrazki.selectedIndex = n;
  przejscie = false;
}
//-->
</script>


<form action="jakas_strona.html" name="przegladarka">
<table>
<tr>
<td>
<input type="button" id="poczatek" value="|<<" title=" poczatek" style="font-size: 8pt;" onclick="wyswietl(0)" />
<input type="button" id="poprzedni" value="<<" title="poprzedni" style="font-size: 8pt; font-weight: bold;" onclick="wyswietl(--nr)" />
<select id="obrazki" onchange="wyswietl(this.selectedIndex)">
<option value="01.jpg">1</option>
<option value="02.jpg">2</option>
<option value="03.jpg">3</option>
<option value="04.jpg">4</option>
</select>
<input type="button" id="nastepny" value=">>" title="nastepny" style="font-size: 8pt; font-weight: bold;" onclick="wyswietl(++nr)" />
<input type="button" id="koniec" value=">>|" title="Koniec" style="font-size: 8pt;" onclick="wyswietl(document.przegladarka.obrazki.length-1)" /></td>
</tr>
</table>
<div><img id="img" src="001.jpg" alt="" /></div>
</form>
Chodzi o fragmencik name="przegladarka". Walidator oczywiście to wywala i należy to zastąpić "id", ale kiedy to zrobie, skrypt przestaje działać...

Na JS kompletnie się nie znam, przerobiłem to na wyczucie i z uwzględnieniem podpowiedzi walidatora ;)

Co z tym zrobić ?
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [JS] skrypt a standardy

Post autor: viraptor »

document.getElementById("poczatek"), zamiast document.przegladarka.poczatek
Inne też w tym stylu pozamieniaj.
Pozatym pewnie przyda ci się debuger javascriptu - polecam ten dołączany do mozilli - tutorial do niego masz tu http://www.svendtofte.com/code/learning_venkman/
Roberto
Nowy
Nowy
Posty: 38
Rejestracja: czw paź 20, 2005 4:04 pm

Re: [JS] skrypt a standardy

Post autor: Roberto »

viraptor pisze:document.getElementById("poczatek"), zamiast document.przegladarka.poczatek
Sugerując się tym spróbowałem na dwa razy:

1. document.getElementById("przegladarka").poczatek
2. document.getElementById("przegladarka").getElementById("poczatek")

Drugi przypadek nie działa, a w pierwszym przypadku wszystkie zmienne (czy jak to sie nazywa) inne niż "przegladarka" pozostawiłem po staremu i... działa na Operze, FF oraz IE, thx :)
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [JS] skrypt a standardy

Post autor: viraptor »

document.getElementById("przegladarka").poczatek ?
Pisałem document.getElementById("poczatek")
Ale nie wiem czy to pierwsze jest typowym zachowaniem, czy działającym przypadkiem...
Ktoś może potwierdzić jak to jest?
Roberto
Nowy
Nowy
Posty: 38
Rejestracja: czw paź 20, 2005 4:04 pm

Re: [JS] skrypt a standardy

Post autor: Roberto »

viraptor pisze:document.getElementById("przegladarka").poczatek ?
Pisałem document.getElementById("poczatek")
No ja wiem że tak pisałeś ale z góry założyłem, że to mojego problemu nie rozwiąże ;) Bo skoro pierwotnie taka linijka wygląda tak:

document.przegladarka.poczatek

to zawiera zarówno "przegladarke" jak i "poczatek", a potem dalej na stronie jest odwołanie id="przegladarka", wiec gdybym zrobil twoje:

document.getElementById("poczatek")

to gdzie miał bym swoją "przegladarke" ? ;) zwłaszcza że oprócz "poczatku" są też inne: "poprzedni", "nastepny", "koniec", ale to nie z nimi był problem, a właśnie z "przegladarka". Nawet nie wiem jak bym miał się potem do tego odwołać.
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: [JS] skrypt a standardy

Post autor: viraptor »

document.getElementById ma generalnie szukać po całym dokumencie. Inaczej wyglądałoby to tak, że musiałbyś nadawać id <html>'owi, <body> i innym też i do każdego się po kroku odwoływać ;)
ODPOWIEDZ