Reiner Wirth: Laufzeitfehler in Microsoft JScript

Hallo,

bei

function stopSound(){
parent.soundfrm.location.href = "../Sound1/stille.html";
}

meldet mein Microsoft Debugger:
Laufzeitfehler in Microsoft JScript: 'parent.soundfrm.location' ist Null oder kein Objekt

"soundfrm" ist der Name des Frames.
Bei Firefox und Safari tuts, hat jemand eine Idee, muss ich vielleicht noch eine Variable definieren?

  1. bei

    function stopSound(){
    parent.soundfrm.location.href = "../Sound1/stille.html";
    }

    bei

    meldet mein Microsoft Debugger:
    Laufzeitfehler in Microsoft JScript: 'parent.soundfrm.location' ist Null oder kein Objekt

    solchen Problmen ist es immer sinnvoll sich die verwendeten Objekte mal ausgeben zu lassen:

    alert(parent);
    alert(parent.soundfrm);
    alert(parent.soundfrm.location);

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. bei

      function stopSound(){
      parent.soundfrm.location.href = "../Sound1/stille.html";
      }

      bei

      meldet mein Microsoft Debugger:
      Laufzeitfehler in Microsoft JScript: 'parent.soundfrm.location' ist Null oder kein Objekt

      solchen Problmen ist es immer sinnvoll sich die verwendeten Objekte mal ausgeben zu lassen:

      alert(parent);
      alert(parent.soundfrm);
      alert(parent.soundfrm.location);

      Struppi.

      Danke für den Hinweis,

      habe ich gleich untersucht und stelle fest, dass alles so lange gut geht, bis dann plötzlich ein solcher Laufzeitfehler verhindert, dass die URL neu geladen wird.

      alert(parent.soundfrm.location); hier ist dann Schluss der Veranstaltung, nachdem die URL zuvor mehrmals geladen werden konnte.

      Ist denkbar, dass mein Code

      event.cancelBubble = true;

      Verwirrung stiftet und ich der Sache nochmals nachgehen muss oder ich die von Wahsaga vorgeschalgene Lösung verwenden sollte, die das bubbling abfängt, indem ich nach dem target suche beim Klicken?

      Gruß Reiner

      1. Danke für den Hinweis,

        habe ich gleich untersucht und stelle fest, dass alles so lange gut geht, bis dann plötzlich ein solcher Laufzeitfehler verhindert, dass die URL neu geladen wird.

        alert(parent.soundfrm.location); hier ist dann Schluss der Veranstaltung, nachdem die URL zuvor mehrmals geladen werden konnte.

        Dann ist der Fehler irgendwo anders.

        Ist denkbar, dass mein Code

        event.cancelBubble = true;

        Verwirrung stiftet und ich der Sache nochmals nachgehen muss oder ich die von Wahsaga vorgeschalgene Lösung verwenden sollte, die das bubbling abfängt, indem ich nach dem target suche beim Klicken?

        nein.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. alert(parent.soundfrm.location); hier ist dann Schluss der Veranstaltung, nachdem die URL zuvor mehrmals geladen werden konnte.

          Dann ist der Fehler irgendwo anders.

          Struppi.

          der Fehler liegt an meiner Browserweiche,

          ich müßte jetzt an der Weiche für den IE auf click oder dblclick testen und bin wieder mal zu doof.

          ich lande in

          var name_des_browsers;
          function clickTimer(idEbene, xOff, yOff, idSound)
           {
           Ebene=idEbene;
             Sound=idSound;
             xO=xOff;
             yO=yOff;
                 if (name_des_browsers == "Microsoft Internet Explorer") {
                 testIE(); return:
                 }
             klicks++;
             tout = setTimeout(function()
             {if(klicks==1)
             {
             parent.soundfrm.location.href = Sound;
             } else {
           callDHTML(Ebene, xO, yO);
             }
             klicks = 0; }, 500);
            }
           klicks = 0;

          function testIE (e);
                 if (!e) var e = window.event;
                 alert (e.type);
                 }

          hier verstehe ich nicht, warum hier nur click "gemeldet" wird und nicht dblclick.

          Bitte helft mir!

          Reiner

          1. mein letzer Post war leider voller Fehler und unübersichtlich, deshalb versuch ichs nochmal:

            function clickTimer(idEbene, xOff, yOff, idSound) {
            Ebene=idEbene;
            Sound=idSound;
            xO=xOff;
            yO=yOff;
            if (name_des_browsers == "Microsoft Internet Explorer") {
            testIE(); return;
            }
            …etc.…
            }
            klicks = 0;

            function testIE (e) {
            if (!e) var e = window.event;
            alert (e.type);
            }

            ich möchte aus einer Funktion, die ich nicht für den IE benutzen will, in eine testIE-Funktion springen, dort ermitteln, ob ein click oder dblclick aufgetreten ist und dann die Verzweigung click --> tue1 oder dblclick --> tue2 ausführen lassen; return;

            Was ich nicht kann, ist der Test auf click oder dblclick zu testen, im Moment wird nur "click" gemeldet.

            Kann jemand ein wenig helfen?

            Reiner