[JS] Rare javascript fout in Netscape 6.2

Pagina: 1
Acties:

  • porn*
  • Registratie: Januari 2001
  • Laatst online: 26-08 13:24

porn*

...take on the world!

Topicstarter
Ik ben bezig met het downgraden van een vrij grote webmodule, die nogal wat (inter-frame) Javascript gebruikt. De module werkt in alle MSIE versies vanaf 4.0, en ook in NS 4.7. In 6.2 werkt deze ook bijna, op een foutje na: een select-box wordt door een Javascript gezet, maar dat werkt dus niet. Exact dezelfde code werkt wel in Netscape 4.7 en MSIE.

Hier is de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getPayment() {
  var f = findFrame("SHOPTOP");
  if (f==null) return;
  var form = document.forms[0];
  if (form==null) return;
  var p = f.Payment;
  if (p!=null) if (p.method!=null) {
    var el = form.elements["PAYMENTSEL"];
    if (el!=null) if (el.selectedIndex!=null) {
      // alert("test");
      el.selectedIndex = p.method - 1;
      // alert("test2");
    }
    currentMethod = p.method;
  }
}


De checkbox wordt dus gewoon niet gezet, en blijft op de eerste waarde staan. Wat WEL heel erg vreemd is, is dat als ik de 2 alerts er weer in zet, dan werkt het weer wel! :?
De Javascript console geeft overigens ook geen fouten...

Bnet pindle#2913


Verwijderd

Oh oh, als je eens setTimeout('getPayment()',100) doet dan?
Ik had een (hele) tijd geleden ook van die rare problemen daar mee met Mozilla weet ik nog wel.

  • porn*
  • Registratie: Januari 2001
  • Laatst online: 26-08 13:24

porn*

...take on the world!

Topicstarter
In de eerste instantie lijkt het inderdaad een threadingprobleem, maar ik heb het gechecked en er wordt geen enkele thread over die van de functie geladen oid. Desalniettemin ga ik je oplossing toch even proberen.

Bnet pindle#2913


  • porn*
  • Registratie: Januari 2001
  • Laatst online: 26-08 13:24

porn*

...take on the world!

Topicstarter
Nou dat werkt dus wel. En toch blijft het een vreemde zaak. Heb je misschien enig idee wat het wel kan zijn dan? Een bug in NS 6.2 die een form misschien reset nadat het ingeladen is?
Of de functie wordt ineens afgekapt, en omdat dit een nieuwe thread is wordt deze wel volledig uitgevoerd (er zit namelijk nogal wat Javascript in, en dan heb ik het niet over enkele tientallen regels maar eerder over een regel of 2000)?

Bnet pindle#2913


Verwijderd

Staat er een fout in de javascript console?

Verwijderd

Ik vind het ook een vreemde zaak, het in ieder geval zeker een bug in Mozilla. Het zal wel zoiets zijn: een bug die een form reset nadat het ingeladen is.
Welk nummer die bug heeft, weet ik niet.
Ik denk niet dat je functie wordt afgekapt. Ik kreeg het probleem bij een heel simpel stukje code. Het zou trouwens zelfs kunnen dat setTimeout op 0 zetten al werkt.

  • porn*
  • Registratie: Januari 2001
  • Laatst online: 26-08 13:24

porn*

...take on the world!

Topicstarter
Verwijderd schreef op 30 december 2002 @ 12:38:
Staat er een fout in de javascript console?
Nee, zoals ik al eerder zei geeft die geen fouten.
Verwijderd schreef op 30 December 2002 @ 12:43:
Ik vind het ook een vreemde zaak, het in ieder geval zeker een bug in Mozilla. Het zal wel zoiets zijn: een bug die een form reset nadat het ingeladen is.
Welk nummer die bug heeft, weet ik niet.
Ik denk niet dat je functie wordt afgekapt. Ik kreeg het probleem bij een heel simpel stukje code. Het zou trouwens zelfs kunnen dat setTimeout op 0 zetten al werkt.
setTimeout 0 werkt inderdaad ook prima, het gaat er dus blijkbaar puur om dat de functie in een aparte thread los van de rest gestart wordt. En alles gaat dan goed. Ik vind het maar een beetje een smerige 'oplossing', maja denk idd ook dat het een bug is en dat ik er dus verder weinig aan kan doen. Iig bedankt! :)

Bnet pindle#2913

Pagina: 1