Toon posts:

[JavaScript]HP iPaq browser + getElementById

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit een webpagina op de PDA te bekijken, en het lijkt er op dat de javascript interpreter van de browser (HP iPaq) vastloopt op de functie getElementByID

Is dit bekend? Of moet ik het probleem ergens anders zoeken?

Gr

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

het zal wel een typfout zijn maar het moet getElementById zijn <-- let op de lowercase 'd'

Blog [Stackoverflow] [LinkedIn]


  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 13:19

MAZZA

Barbie is er weer!

Test het eens met een simpele pagina met alleen die functie. Loopt ie dan vast dan weet je genoeg.

Verwijderd

Topicstarter
MAZZA schreef op 25 maart 2004 @ 11:59:
Test het eens met een simpele pagina met alleen die functie. Loopt ie dan vast dan weet je genoeg.
Ja, dat is wel de goede manier... De functie wordt aangeroepen op een ander object dat met eval() wordt opgeleverd. Het is dus waarschijnlijker dat het object dat eval() retourneert niet goed is?

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 14:37

Pelle

🚴‍♂️

eval is vies.

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Omdat het een ranzige methode is om iets te laten werken, het kan ALTIJD netter. Plus het feit dat eval relatief traag is.

Verwijderd

Topicstarter
Ik ben mijn webapplicatie aan het porten naar een PDA-versie. Op de Tungsten PALM OS werkt ie gladjes... maar op de HP iPaq Pocket PC lukt het niet om div-menu's zichtbaar te maken. Ik maak met javascript een style.visibility=visible door de getElementById te gebruiken. Het object wordt met met een eval met strings aangeroepen.

Het rare is dus dat de Palm het wel pakt, en de iPaq niet. Op de desktop werkt alles sowieso gladjes.

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Er is geen situatie te bedenken waar je eval moet gebruiken, hoe ziet je code er uit?

Verwijderd

Topicstarter
ok. Deze functie zet mijn "submenux" (er zitten een x aantal submenu's invisible in een frame) op visible, en maakt de andere invisible.

code:
1
2
3
4
5
6
function webdb_set_element_visibility(f, i, v) {
  f = (f == null) ? "" : f + ".";
  var obj = eval(f + "document").getElementById(i);
  if (obj)
    obj.style.visibility = v;
}

Verwijderd

Topicstarter
Verwijderd schreef op 25 maart 2004 @ 13:16:
ok. Deze functie zet mijn "submenux" (er zitten een x aantal submenu's invisible in een frame) op visible, en maakt de andere invisible.

code:
1
2
3
4
5
6
function webdb_set_element_visibility(f, i, v) {
  f = (f == null) ? "" : f + ".";
  var obj = eval(f + "document").getElementById(i);
  if (obj)
    obj.style.visibility = v;
}
f=framenaam
i=submenunaam
v=visible {"visible"/"hidden"}

Verwijderd

code:
1
2
3
4
5
6
function webdb_set_element_visibility(f, i, v) {
  myRoot = (document.getElementById(f)) ? document.getElementById(f).document : document;
  var obj = myRoot.getElementById(i);
  if (obj)
    obj.style.visibility = v;
}


hiermee zou je het zonder eval kunnen doen. Lost het echte probleem nog niet op maar toch. ;)

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Verwijderd schreef op 25 maart 2004 @ 13:16:
ok. Deze functie zet mijn "submenux" (er zitten een x aantal submenu's invisible in een frame) op visible, en maakt de andere invisible.
code:
1
2
3
4
5
6
7
function webdb_set_element_visibility(f, i, v)
{
  if (f == null) { var obj = document.getElementById(i); }
  else { var obj = window.frames[f].document.getElementById(i); }

  if (obj) { obj.style.visibility = v; }
}
Pagina: 1