Claudia B.: PopUp in FireFox - Fehler JavaKonsole

Hallo,

ich erhalte bei folgendem PopUp-Befehl immer eine Hinweismeldung und ein Zusatzfenster (JavaKonsole) im FireFox.

a href="javascript:" onClick="window.open('file.htm','.................

es liegt an dem "javascript:" wenn ich es austausche durch "#" dann funktiert es. Hat aber den Nachteil, dass die Seite immer wieder zum Anfang springt.

Was könnt ihr mir empfehlen?

Danke.

claudia

  1. hi,

    Was könnt ihr mir empfehlen?

    lesen.
    http://molily.de/javascript-popups

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. a href="javascript:" onClick="window.open('file.htm','.................

    Besser wäre:

    <a href="javascript:window.open('file.htm','..');"
    , oder?

    1. Hi,

      Besser wäre:

      <a href="javascript:window.open('file.htm','..');"
      , oder?

      nein. Es sei denn, die Datei soll ohne Javascript nicht aufrufbar sein.

      freundliche Grüße
      Ingo

      1. @Ingo:
        hmm,
        für den ist das Internet mittlerweile wohl eh "schwarz-weiß". Wer hat den heutzutage noch Javascript deaktiviert? tze tze tze

        @Claudia:
        Klar dass Du an den Anfang der Seite kommst, wenn Du auf einen "#" verweist. Wirkt wie ein Anker am Anfang des Dokuments. Wenn Du als href "javascript:" angibst, dann muß genau dahinter auch Dein Javascript- aufruf ( "javascript:alert('der ingo mag kein javascript :)');".
        oder aber du schreibst <a href="deineDatei.html" target="_blanc">clickMich</a>
        oder ( um auch noch was unnötiges von mir zu geben) :
        ..... <a name="hierher"><a href="#hierher" onclick="window.open(...)">clickMich</a></a> hehe

        1. Hi,

          für den ist das Internet mittlerweile wohl eh "schwarz-weiß". Wer hat den heutzutage noch Javascript deaktiviert? tze tze tze

          auf meinen Seiten etwa 3%. Und die kommen auch so an alle Informationen heran. Warum sollte man Minderheiten unnötig ausgrenzen?

          Klar dass Du an den Anfang der Seite kommst, wenn Du auf einen "#" verweist.

          Nein, nicht alle Browser interpretieren den Sprung zu einem nicht vorhandenen Anker als Sprung zum Seitenanfang.

          alert('der ingo mag kein javascript :)');"

          hab' ich nicht gesagt. Nur daß diese Methode Besucher mit deaktiviertem Javascript ausgrenzt - nebenbei auch Suchmaschinen. Wenn dies so gewollt ist: bitte. Wenn nicht, geht es auch anders.

          oder aber du schreibst <a href="deineDatei.html" target="_blanc">

          Das ist ein ungültiger Fenstername?

          oder ( um auch noch was unnötiges von mir zu geben) :
          ..... <a name="hierher"><a href="#hierher" onclick="window.open(...)">clickMich</a></a> hehe

          Das war in der Tat unnötig.

          freundliche Grüße
          Ingo

          1. jetzt hätte ich doch beinahe noch was vergessen:

            wenn Du so für Barrierefreiheit bist, warum verwendest Du dann in Deiner Webseite ( http://www.1ngo.de/web/projekte.html ) selbst eine onclick="irgendeine funktion" um die Projekte in einem neuen Fenster zu zeigen?
            sehr inkonsequent Ingo, sehr inkonsequent
            Die armen 3% die die Projekte nicht sehen können oder im Quelltext nachsehen müssen. und vor allem google erhält so garkeine verweise auf diese seiten ( ranking .. :)

            so, hetzt aber wirklich feddisch
            Gruss
            Jochen

            1. hi,

              wenn Du so für Barrierefreiheit bist, warum verwendest Du dann in Deiner Webseite ( http://www.1ngo.de/web/projekte.html ) selbst eine onclick="irgendeine funktion" um die Projekte in einem neuen Fenster zu zeigen?

              hast du diese links mal ohne aktiviertes JS benutzt?
              du wirst feststellen, sie funktionieren trotzdem.

              das liegt daran, dass Ingo im gegensatz zu dir an dieser stelle weiß, was er tut.

              sehr inkonsequent Ingo, sehr inkonsequent

              ziemlich dumm, Jochen, ziemlich dumm - hier so'ne dicke lippe zu riskieren, wenn offenbar kaum ahnung von der technik vorhanden ist.

              Die armen 3% die die Projekte nicht sehen können oder im Quelltext nachsehen müssen. und vor allem google erhält so garkeine verweise auf diese seiten ( ranking .. :)

              "wenn man keine ahnung hat ..."

              so, hetzt aber wirklich feddisch

              na endlich.
              so viel unfug, wie du hier von dir gibst, wird ja langsam schwer zu ertragen.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
              1. Wenn barrierefrei bedeutet, dass ich dann Links aus einem Dokument kopieren und wieder in einen Browser pasten kann.. na dann. ( abgesehen davon was Browser machen die ein überschriebenes Event ignorieren..)

                nebenbei - bitte nicht beleidigend werden, sowas kann schnell ungewollte Folgen haben.
                Danke

                1. Wenn barrierefrei bedeutet, dass ich dann Links aus einem Dokument kopieren und wieder in einen Browser pasten kann.. na dann. ( abgesehen davon was Browser machen die ein überschriebenes Event ignorieren..)

                  Hast du die Links mal ohne JS ausprobiert?
                  Les den Artikel, den wahsaga weiter unten schon https://forum.selfhtml.org/?t=114970&m=733850 verlinkte.

                  Da nicht damit zu rechnen ist, dass du dir diese Mühe machst und damit du nicht weiter darauf rumreitest. Ein Link zu einem Popup oder neuen Fenster läßt sich so umsetzen:

                  <a href="seite.html" onclick="window.open(this.href);return false">

                  Dann funktioniert der Link mit oder ohne JS und Suchmaschinen können ihm folgen.

                  Auch deine Behauptung das Heute JS deaktivieren dumm wäre zeugt nicht von viel Ahnung von der Materie. Zumindest wer den IE zum Browsen verwendet sollte sich im klaren sein, dass jederzeit ein Virus, Dialer, Bot oder sonstwas sich in seinem System einisten kann um dann Maßnahmen dagegen zu treffen (immer den neusten Patch einspielen, Sicherheitseinstellungen gegebenfalls verbessern und im Zweifelsfall ale aktiven Inhalte erstmal deaktivieren).

                  Struppi.

                  1. Hallo Struppi.

                    <a href="seite.html" onclick="[code lang=javascript]window.open(this.href);return false">[/code]

                    Kannst du mir womöglich erklären, warum das „this“ bei solchen Aufrufen weggelassen werden kann?

                    Konkret:

                    <a href="seite.html" onclick="[code lang=javascript]alert('Ziel: '+href);return false">Ziel</a>[/code]

                    Bezieht sich der Aufruf hier ohne weitere Angabe zwingend auf das aktuelle Objekt?

                    Einen schönen Montag noch.

                    Gruß, Ashura

                    --
                    Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
                    30 Days to becoming an Opera8 Lover -- Firefox tools for Opera built-ins
                    Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
                    MathML fetzt
                    1. <a href="seite.html" onclick="[code lang=javascript]window.open(this.href);return false">[/code]

                      Kannst du mir womöglich erklären, warum das „this“ bei solchen Aufrufen weggelassen werden kann?

                      Erkären kann es die eher jemand wie molily.

                      Konkret:

                      <a href="seite.html" onclick="[code lang=javascript]alert('Ziel: '+href);return false">Ziel</a>[/code]

                      Bezieht sich der Aufruf hier ohne weitere Angabe zwingend auf das aktuelle Objekt?

                      Ja, was aber nicht immer unproblematisch ist:

                      <script type="text/javascript">  
                      function href()  
                      {  
                      alert('test');  
                      }  
                      </script>  
                      <a href="#" test="x" onclick="alert(href); href()">klick</A>  
                      
                      

                      Struppi.

                      1. Hallo Struppi.

                        Kannst du mir womöglich erklären, warum das „this“ bei solchen Aufrufen weggelassen werden kann?

                        Erkären kann es die eher jemand wie molily.

                        In Ordnung, vielleicht liest er bei Gelegenheit diesen Thread.

                        Ja, was aber nicht immer unproblematisch ist:

                        <script type="text/javascript">

                        function href()
                        {
                        alert('test');
                        }
                        </script>
                        <a href="#" test="x" onclick="alert(href); href()">klick</A>

                          
                        Sofern das Problem hier dabei liegt, dass der Link geöffnet wird, kann man dies aber ebenso wenig mit „this“ beheben. Oder was meintest du?  
                          
                          
                        Einen schönen Montag noch.  
                          
                        Gruß, Ashura  
                        
                        -- 
                        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|  
                        [30 Days to becoming an Opera8 Lover](http://operalover.tntluoma.com/8/) -- [Firefox tools for Opera built-ins](http://operalover.tntluoma.com/8/firefox_tools_for_opera_builtins)  
                        Meine Browser: [Opera 8.02](http://my.opera.com/noctus/affiliate/) | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0  
                        [MathML](http://de.wikipedia.org/wiki/MathML) fetzt
                        
                    2. Hallo,

                      Kannst du mir womöglich erklären, warum das „this“ bei solchen Aufrufen weggelassen werden kann?

                      <a href="seite.html" onclick="[code lang=javascript]alert('Ziel: '+href);return false">Ziel</a>[/code]

                      Die Stichwörter lauten Execution Contexts und Scope Chain. Wenn man irgendwo einen Identifier notiert, wird die Scope Chain durchlaufen, um das entsprechende Objekt zu finden. this ist hier das erste Objekt, bei dem das Objekt href gesucht wird, window bzw. das globale Objekt der letzte.

                      Bezieht sich der Aufruf hier ohne weitere Angabe zwingend auf das aktuelle Objekt?

                      Ja. Wenn dort kein solches existiert, wird die Scope Chain abgearbeitet.

                      Mathias

                      1. Hallo molily.

                        Ich danke dir für deine Antwort.
                        Jetzt kann ich mir dieses Verhalten wenigstens erklären, auch wenn ich meine, dass „Durchreichen“ des Events schon ein Mal in einem anderen Kontext gelesen zu haben.

                        Einen schönen Dienstag noch.

                        Gruß, Ashura

                        --
                        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
                        30 Days to becoming an Opera8 Lover -- Firefox tools for Opera built-ins
                        Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
                        MathML fetzt
                        1. Hallo,

                          Jetzt kann ich mir dieses Verhalten wenigstens erklären, auch wenn ich meine, dass „Durchreichen“ des Events schon ein Mal in einem anderen Kontext gelesen zu haben.

                          Äh... Die Scope Chain beim Auflösen von Objektnamen und das Aufsteigen von Ereignissen (Bubbling) sind zwei völlig unterschiedliche Dinge. ;) Der Mechanismus der Scope Chain und die Bedeutung von »this« beim Event-Handling hängen aber zusammen.

                          Das Aufsteigen zeigt sich im Beispiel nicht, weil man das click-Ereignis direkt am Zielobjekt (beim a-Elementknoten) verarbeitet, bei dem es passierte.
                          »this« hat eine Bedeutung beim Event-Handling, siehe http://www.quirksmode.org/js/this.html und http://www.quirksmode.org/js/events_order.html#link10.
                          <p onclick="alert(this)"><span>klick mich</span></p>
                          Wenn man auf den Text klickt, passiert ein click-Ereignis beim span-Element. Das Ereignis steigt auf zum p-Element, wo der onclick-Handler ausgelöst wird. this zeigt immer auf das Elementknotenobjekt, dessen Handler gerade ausgeführt wird. Es entspricht daher Eventobjekt.currentTarget aus DOM Events.

                          Wenn man <element onevent="JavaScript-Code">...</element> notiert, dann ist onevent aus Sicht von JavaScript ein Funktionsobjekt, das am Elementknotenobjekt hängt. Wenn man in einer solchen Funktion einen Objektnamen notiert, ist das Objekt, an dem das Funktionsobjekt hängt, immer this und somit das erste Objekt in der Scope Chain, bei dem gesucht wird. Deshalb sollte »objektname« in einer Handlerfunktion identisch zu »this.objektname« und identisch zu »Eventobjekt.currentTarget.objektname« sein.

                          Mathias

                          1. Hallo molily.

                            Äh... Die Scope Chain beim Auflösen von Objektnamen und das Aufsteigen von Ereignissen (Bubbling) sind zwei völlig unterschiedliche Dinge. ;) Der Mechanismus der Scope Chain und die Bedeutung von »this« beim Event-Handling hängen aber zusammen.

                            Ah, also doch etwas Anderes.

                            »this« hat eine Bedeutung beim Event-Handling, siehe http://www.quirksmode.org/js/this.html und http://www.quirksmode.org/js/events_order.html#link10.

                            Ja, diese Bedeutung ist mir bereits vertraut und ich nutze sie auch wo ich kann, um Funktionen flexibel zu halten. (Also bezieht sich this innerhalb von Funktionen immer auf das window-Objekt. Aber war z. B. im DOM nicht document das oberste Objekt in der Hierarchie?)

                            [...] this zeigt immer auf das Elementknotenobjekt, dessen Handler gerade ausgeführt wird. Es entspricht daher Eventobjekt.currentTarget aus DOM Events.

                            Wieder etwas auf der Liste, was ich unbedingt ein Mal lesen sollte, danke.

                            Wenn man <element onevent="JavaScript-Code">...</element> notiert, dann ist onevent aus Sicht von JavaScript ein Funktionsobjekt, das am Elementknotenobjekt hängt. Wenn man in einer solchen Funktion einen Objektnamen notiert, ist das Objekt, an dem das Funktionsobjekt hängt, immer this und somit das erste Objekt in der Scope Chain, bei dem gesucht wird. Deshalb sollte »objektname« in einer Handlerfunktion identisch zu »this.objektname« und identisch zu »Eventobjekt.currentTarget.objektname« sein.

                            Dies habe ich zwar nun auch in obig verlinkten Dokumenten gelesen, dennoch danke für diese erneute Erläuterung.

                            (Ich sehe schon, in JS lernt man nie aus...)

                            Einen schönen Donnerstag noch.

                            Gruß, Ashura

                            --
                            Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
                            30 Days to becoming an Opera8 Lover -- Firefox tools for Opera built-ins
                            Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
                            MathML fetzt
                            1. Hallo,

                              »this« hat eine Bedeutung beim Event-Handling, siehe http://www.quirksmode.org/js/this.html und http://www.quirksmode.org/js/events_order.html#link10.

                              Ja, diese Bedeutung ist mir bereits vertraut und ich nutze sie auch wo ich kann, um Funktionen flexibel zu halten. (Also bezieht sich this innerhalb von Funktionen immer auf das window-Objekt.

                              Nein, this bezieht sich auf das Objekt, an dem das Funktionsobjekt hängt, also dessen Methode die Funktion ist.

                              (Deshalb mein Beispiel: Ein Event-Handler ist beim traditionellen Event-Handling ein Funktionsobjekt, das an einem Elementknotenobjekt hängt, daher verweist this auf eben dieses Elementknotenobjekt.)

                              Aber war z. B. im DOM nicht document das oberste Objekt in der Hierarchie?)

                              Ja. Das oberste Objekt in JavaScript ist aber window. Wenn man function bla () {} im globalen Kontext notiert, ist bla eine Methode des window-Objektes. Daher zeigt this in Funktionen in der Regel, aber nicht notwendigerweise auf window. (In allen anderen Kontexten, bei denen die Funktion nicht ausdrücklich an einem bestimmten Objekt hängt, ist sie zwar nicht eine Methode des window-Objektes, aber was this angeht, gehört sie zu window.)

                              Man kann natürlich auch document.bla = function () {}; notieren, dann ist this === document in dieser Funktion. Das ist aber eher unüblich.

                              Mathias

                              1. Hallo molily.

                                Nein, this bezieht sich auf das Objekt, an dem das Funktionsobjekt hängt, also dessen Methode die Funktion ist.

                                (Deshalb mein Beispiel: Ein Event-Handler ist beim traditionellen Event-Handling ein Funktionsobjekt, das an einem Elementknotenobjekt hängt, daher verweist this auf eben dieses Elementknotenobjekt.)

                                Soweit klar.
                                Doch in Funktionen bezieht sich this doch zwangsläufig auf das window-Objekt:

                                function foo() {

                                alert(this);
                                // Ausgabe: [object Window]

                                }

                                Ja. Das oberste Objekt in JavaScript ist aber window. Wenn man function bla () {} im globalen Kontext notiert, ist bla eine Methode des window-Objektes.

                                Ebenso wie Variablen, wie ich hier gestern zum ersten Mal laß.
                                (Dass also var foo = "Bar" im globalen Kontext das Selbe ist, wie window["foo"] = "Bar", wusste ich noch nicht.)

                                Man kann natürlich auch document.bla = function () {}; notieren, dann ist this === document in dieser Funktion. Das ist aber eher unüblich.

                                Also müsste bei folgendem [object: Document] ausgegeben werden?

                                document.bar = function () {  
                                  
                                    alert(this);  
                                  
                                }
                                

                                Ah, Korrektur: im FF wird [object: HTMLDocument] ausgegeben.
                                Opera versteht dies offenbar nicht. Er scheint mein Funktionsobjekt als Variable ansehen zu wollen:

                                Event thread: click
                                Error:
                                name: ReferenceError
                                message: Statement on line 1:
                                Reference to undefined variable:
                                bar

                                Merkwürdig. Oder liegt bei mir ein Denkfehler vor?

                                Einen schönen Freitag noch.

                                Gruß, Ashura

                                --
                                Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
                                30 Days to becoming an Opera8 Lover -- Firefox tools for Opera built-ins
                                Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
                                MathML fetzt
                2. hi,

                  Wenn barrierefrei bedeutet, dass ich dann Links aus einem Dokument kopieren und wieder in einen Browser pasten kann.. na dann.

                  Wenn du nicht in der Lage bist, zu erkennen, dass dies hier auch bei deaktivertem Javascript nicht nötig ist - dann gehörst du vielleicht selbst zu der Gruppe, die von barrierefreien Seiten am meisten profitieren kann.

                  nebenbei - bitte nicht beleidigend werden, sowas kann schnell ungewollte Folgen haben.

                  Jegliche eventuell als beleidigend zu verstehenden Äußerungen sind ja hier ohnehin überflüssig - an Hand deiner Anworten kann sich ja auch so jeder mitlesende ein Urteil von deiner Unwissenheit bilden.

                  gruß,
                  wahsaga

                  --
                  /voodoo.css:
                  #GeorgeWBush { position:absolute; bottom:-6ft; }
            2. Hi,

              wenn Du so für Barrierefreiheit bist, warum verwendest Du dann in Deiner Webseite ( http://www.1ngo.de/web/projekte.html ) selbst eine onclick="irgendeine funktion" um die Projekte in einem neuen Fenster zu zeigen?
              sehr inkonsequent Ingo, sehr inkonsequent

              ich weiss... Schuld ist meine Neugier und daß mein Webspace keine serverseitigen Scripte zuläßt. ;-)

              Die armen 3% die die Projekte nicht sehen können oder im Quelltext nachsehen müssen.

              Nö, die sehen die URLs übersichtlich zusammengestellt, wie Du ja inzwischen auch mitbekommen hast.

              und vor allem google erhält so garkeine verweise auf diese seiten ( ranking .. :)

              Dies wiederum ist sogar beabsichtigt und das Ranking _meiner_ Seite wird dadurch ja nicht negativ beeinflußt.

              freundliche Grüße
              Ingo

  3. Hi,

    für den ist das Internet mittlerweile wohl eh "schwarz-weiß". Wer hat den heutzutage noch Javascript deaktiviert? tze tze tze
    auf meinen Seiten etwa 3%. Und die kommen auch so an alle Informationen heran. Warum sollte man Minderheiten unnötig ausgrenzen?

    vielleicht ein Fehler in einem Script vor der Browserabfrage o.ä.? Schwerz ;) naja, ist ja schon gut.

    Klar dass Du an den Anfang der Seite kommst, wenn Du auf einen "#" verweist.
    Nein, nicht alle Browser interpretieren den Sprung zu einem nicht vorhandenen Anker als Sprung zum Seitenanfang.

    sehr wenige nicht, vor allem bezog sich die Frage wohl auf ein Problem mit Firefox "..ein Zusatzfenster (JavaKonsole) im FireFox."
    und die Antwort darauf, warum dieser dahin springt!

    oder aber du schreibst <a href="deineDatei.html" target="_blanc">
    Das ist ein ungültiger Fenstername?

    das ist ein neues Fenster?

    oder ( um auch noch was unnötiges von mir zu geben) :
    ..... <a name="hierher"><a href="#hierher" onclick="window.open(...)">clickMich</a></a> hehe
    Das war in der Tat unnötig.

    naja, immerhin springt der Browser so nicht nach oben. gg

    freundliche Grüße
    Ingo

    Damit beende ich diese Debatte, die Antwort auf die Frage viel.
    thx
    Gruß
    Jochen

    1. hi,

      wenn du dich auf ingos antwort beziehst, warum dann nicht an der richtigen stelle?

      Damit beende ich diese Debatte,

      besser so, ist ja größtenteils quark, was du erzählst.

      die Antwort auf die Frage viel.

      dann heb' sie mal wieder auf.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
    2. Hi,

      oder aber du schreibst <a href="deineDatei.html" target="_blanc">
      Das ist ein ungültiger Fenstername?
      das ist ein neues Fenster?

      nein, ein ungültiger Fenstername, da er mit "_" beginnt und nicht zu den reservierten Namen gehört.

      freundliche Grüße
      Ingo