Hugo: [object]-Fehler bei window.open

Hallo,

ich hab da ein seltsames Problem mit einem window.open.

Die Zeile
<a href="javascript:window.open('prioritaet.php?prior=2','osdj','width=400,height=400');">link</a>

öffnet zwar ein neues Fenster, aber im Fenster, in dem ich auf den Link geklickt habe erscheint nur eine weisse Seite auf der links oben [object] steht.
Es gibt keine anderen Javascripts auf der Seite, und der Fehler tritt nur am PC (nicht am Mac) auf.

Hat irgendjemand eine Idee, was daran schuld sein könnte, dass die aufrufende Seite nicht stehen bleibt.

Viele Grüße

  1. Hi,

    <a href="javascript:window.open('prioritaet.php?prior=2','osdj','width=400,height=400');">link</a>
    öffnet zwar ein neues Fenster, aber im Fenster, in dem ich auf den Link geklickt habe erscheint nur eine weisse Seite auf der links oben [object] steht.

    was soll der Browser auch sonst machen? Du sagst ihm, er solle im aktuellen Fenster eine Ressource öffnen (<a href>), und dann öffnet diese plötzlich ein neues Fenster. Kein Wunder, dass er da durcheinander kommt. Richtig wäre:

    <a href="prioritaet.html?prior=2" target="osdj" onClick="window.open('prioritaet.html?prior=2','osdj','width=400,height=400'); return false;">

    Beachte die beiden immensen Vorteile, dass a) auch die User ohne JavaScript beachtet werden, und dass b) die URL nicht auf ".php" lautet, zumal sicherlich nicht eine einzige Zeile PHP-Code an den Browser geschickt wird (oder?). Ich habe jetzt einfach mal ".html" geschrieben, weil ich vermute, dass das Script HTML erzeugt. Wenn es etwas anderes wie z.B. PNG ist, dann ändere das bitte entsprechend. Selbstverständlich musst Du Deinen Server noch entsprechend konfigurieren, dass er die Ressource in den PHP-Interpreter schickt.

    Cheatah

    1. Hi,

      <a href="javascript:window.open('prioritaet.php?prior=2','osdj','width=400,height=400');">link</a>
      öffnet zwar ein neues Fenster, aber im Fenster, in dem ich auf den Link geklickt habe erscheint nur eine weisse Seite auf der links oben [object] steht.

      was soll der Browser auch sonst machen? Du sagst ihm, er solle im aktuellen Fenster eine Ressource öffnen (<a href>), und dann öffnet diese plötzlich ein neues Fenster. Kein Wunder, dass er da durcheinander kommt. Richtig wäre:

      <a href="prioritaet.html?prior=2" target="osdj" onClick="window.open('prioritaet.html?prior=2','osdj','width=400,height=400'); return false;">

      Beachte die beiden immensen Vorteile, dass a) auch die User ohne

      und noch besser wäre:
      <a
      href="prioritaet.html?prior=2"
      target="osdj"
      onClick="window.open(this.href, this.target,'width=400,height=400'); return false;"

      Struppi.

      1. Hi,

        vielen Dank jetzt funzts.

        Das target hats ausgemacht.
        Seltsam allerdings, ich hab schon 1000 mal window.open ohne target benutzt, ohne daß Probleme aufgetreten sind.

        Viele Grüße

        1. Hi,

          Das target hats ausgemacht.

          nein, das "return false" aus dem Event-Handler.

          Cheatah

          1. Hm?

            return false hab ich gar nicht reingeschrieben.
            Das einzige was ich geändert hab, war target hinzuzufügen,
            und jetzt gehts.

            Servus

  2. Hallo,

    ich hab da ein seltsames Problem mit einem window.open.

    Die Zeile
    <a href="javascript:window.open('prioritaet.php?prior=2','osdj','width=400,height=400');">link</a>

    öffnet zwar ein neues Fenster, aber im Fenster, in dem ich auf den Link geklickt habe erscheint nur eine weisse Seite auf der links oben [object] steht.

    window.open liefert einen Rückgabewertvon Typ window zurück. Für den Browser ist das einfach ein object, und zwar eines das er nicht Darstellen kann. Daher bringt er einfach [object].

    Du musst also vermeiden das dieser Rückgabewert bis zum Brower durchgereicht wird. Am einfachsten ist wohl:
    <a href="#" onclick="window.open(...)">. Die optimierten Varianten hast du ja bei den anderen gesehen.

    By
    Reinhard