MozillaPL.org - polskie centrum Mozilli

Główne menu:

[js] Problem z getElementById().style.visibility

Jak tworzyć strony WWW zgodnie ze standardami

Moderator: Pomocy?!

[js] Problem z getElementById().style.visibility

Postautor: _Adam_ » 14 listopada 2004, 16:37

Przeglądarka: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser [avantbrowser.com])

Witam,
Niby prosty kod, niby powinno działać, albo ślepnę już... Pomocy, czemu Mozilla sobie z tym nie radzi? :/ Znając życie błąd jest banalny, ale ja już nie mam siły :P Będę wdzięczny za każdą wskazówkę.

Kod: Zaznacz cały
<script type="text/javascript">
<!--
function changeMap(to)
{
 map.src="img/map"+to+".gif";
 if(document.getElementById)
 {       
  document.getElementById("div1").style.visibility = "hidden";
  document.getElementById("div2").style.visibility = "hidden";
  document.getElementById("div3").style.visibility = "hidden";
  document.getElementById("div"+to).style.visibility = "visible";
 }
 else if(document.all)
 {
  document.all["div1"].style.visibility = "hidden";
  document.all["div2"].style.visibility = "hidden";
  document.all["div3"].style.visibility = "hidden";
  document.all["div"+to].style.visibility = "visible";
 }
 else if(document.layers)
 {
  document.layers["div1"].visibility = "hide";
  document.layers["div2"].visibility = "hide";
  document.layers["div3"].visibility = "hide";
  document.layers["div"+to].style.visibility = "show";
 }       
}
//-->
</script>

<div id="div1" style="visibility: hidden"><a href="javascript:void();" onClick="changeMap(2);">Zoom Out</a></div>
<div id="div2" style="visibility: visible"><a href="javascript:void();" onClick="changeMap(1);">Zoom In</a><br><input type="button" class="button" onClick="changeMap(3);" value="Zoom Out"></div>
<div id="div3" style="visibility: hidden"><input type="button" class="button" onClick="changeMap(2);" value="Zoom In"></div>
_Adam_
 

Postautor: MH » 14 listopada 2004, 20:56

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Na moje oko pownienes dac zamiast:
Kod: Zaznacz cały
if(document.getElementById)
ten kod:
Kod: Zaznacz cały
if(getElementById)

Jako ze sprawdzamy obsluge funkcji (tak ja to rozumiem).

Nie jestem jeszcze pewny co do poprawnosci tego skrawka (no ale to juz Mozilli nie dotyczy) 8)
Kod: Zaznacz cały
  document.layers["div1"].visibility = "hide";
  document.layers["div2"].visibility = "hide";
  document.layers["div3"].visibility = "hide";
  document.layers["div"+to].style.visibility = "show";
nie powinno byc tak?
Kod: Zaznacz cały
  document.layers["div1"].style.visibility = "hidden";
  document.layers["div2"].style.visibility = "hidden";
  document.layers["div3"].style.visibility = "hidden";
  document.layers["div"+to].style.visibility = "visible";
MH
 

Postautor: marcoos » 14 listopada 2004, 21:44

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

MH pisze:Na moje oko pownienes dac zamiast:
Kod: Zaznacz cały
if(document.getElementById)
ten kod:
Kod: Zaznacz cały
if(getElementById)

Jako ze sprawdzamy obsluge funkcji (tak ja to rozumiem).


Bzdura.

Nie jestem jeszcze pewny co do poprawnosci tego skrawka (no ale to juz Mozilli nie dotyczy)


Jest ok, w NN4 tak się to nazywało. (Inna sprawa, czy jest sens jeszcze robić cokolwiek pod takie zabytki jak NN4...)

Problem leży gdzie indziej - obiekt map jest niezdefiniowany (tzn. map nie wskazuje na nic, powinieneś mu coś przypisać, choćby przez getElementById). Gdybyś użył Konsoli JS (w menu Narzędzia Firefoksa lub Narzędzia > programistyczne w Mozilli), to byś ten błąd od razu znalazł.

Drugi błąd to nieprawidłowe użycie void() - powinno być np. void(0);
marcoos
Moderator
 
Posty: 2227
Z nami od: 12 października 2002, 10:25
Lokalizacja: Wrocław

Postautor: _Adam_ » 15 listopada 2004, 16:53

Przeglądarka: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Avant Browser [avantbrowser.com])

"map" jest definiowane wcześniej za pomocą:

Kod: Zaznacz cały
<img alt="Map" name="map" src="img/map2.gif" border=0 width=400 height=375>

- tyle starczy?

Powodem problemu nie jest też void(), nie działa także gdy zamiast linków stosuje <input type="button" onClick=...>

Pozdr.
_Adam_
 

Postautor: kfassssss » 21 listopada 2004, 23:34

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1

miałem podobny problem z widzialnością, niewidzialnością divów w mozilli. Dla pewności zastosuj raczej:

display=none
i
display=block

zamiast
style.visibility...

a jak zadziała to wróć i podziękuj ;)
kfassssss
 

Wg porady MWD :]

Postautor: Amato » 02 grudnia 2004, 16:15

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; PL; rv:1.7.2) Gecko/20040803

Wg porady MWD jak udzielil mi nie dawno ;]

dla:
<div id="xDIV">cosik tam</div>

Kod: Zaznacz cały
// dla Mozilli
xxDIV=document.getElement.ById('xDIV');
xxDIV.style.visibility='hidden';


choc ja do przypisania zmiennej obiektu DIV uzywam wlasnej konstrukcji, zapewnia mnie to ze pod wiekszoscia przegladarek nie bedzieproblemu :]

Kod: Zaznacz cały
function GetObject(jaki){
  if (!document.layers&&!document.all){
    if (document.getElementById) {
      rerun (getElementById(jaki));
    }
  }
  if (document.all) {
    return (document.all[jaki]);
  }
  if (document.layers) {
     return (document.layers[jaki]);
  }
  return (jaki);
}

// a uzywa sie wtedy tego tak:
// [do w.w przykladu]
xxDIV=GetObject('xDIV'); // koniecznie w cudzyslow!!
xxDIV.style.visibility='hidden';
[/code]
Amato
 

Re: [js] Problem z getElementById().style.visibility

Postautor: Skorek-1990 » 18 listopada 2009, 21:33

Przeglądarka: Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.2.15 Version/10.01

Ja też sie ostatnio bawie w skryptowanie w JS i też ostatno napodkałem problem z modyfikacją styli.

Nie ma innego sposobu edycji styli niż "document.getElementById('xxx').style.xxx" ??

Może jakimś innym sposobem dało by rade zmienić styl.
Skorek-1990
 

Re: [js] Problem z getElementById().style.visibility

Postautor: Grzegorz » 18 listopada 2009, 22:34

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2b3) Gecko/20091115 Firefox/3.6b3

Najprościej style edytować bez JS w Stylish.
GnuPG. Podpisuję własne wypowiedzi. | TrueCrypt. Ufam kryptografii, nie państwu. | Tor. Dbam o swoją prywatność. | OTR. Moje rozmowy nie są podsłuchiwane.

Załóż konto lub kup domenę WWW z linka polecającego: http://www.hekko.pl/?ref=34295
Grzegorz
Moderator
 
Posty: 7486
Z nami od: 15 kwietnia 2007, 12:33


Wróć do Tworzenie stron WWW

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: