Jutta: Probleme mit window( )

Hallo,

ich habe ein Problem mit der Funktion window().
Ich habe auf meiner Seite einen Link, der folgende Javascript-Funktion aufruft:

function xy() {
   xy = window.open ("xy.php", "Fenster1", "width=655,height=450,scrollbars=no,left=191,top=200");
   xy.focus();
}

Wenn ich den Link das erste mal aufrufe erscheint auch sofort das gewünschte kleine Fenster. Will ich den Link aber ein zweites mal betätigen (egal ob das alte kleine Fenster schon geschlossen oder noch offen ist) bekomm ich vom IE die Meldung das ein Fehler auf der Seite ist. Netscape macht gar nichts mehr. Erst wenn ich die Ursprungsseite mit dem Link aktualisiere funktioniert es wieder einmal.
Was mache ich falsch, bzw. wie schaffe ich es, dass das Fenster auch noch ein zweites mal geladen wird.

Vielen Dank im Vorraus
Jutta

  1. Hallo Jutta,

    beim ersten Aufruf der Funktion ist das Objekt xy eine Funktion. In der Funktion erzeugst Du ein Objekt xy, welches ein Fenster ist und überschreibst damit die Funktion. Die gibt es jetzt nämlich nicht mehr. Benenne also die Funktion um.

    Gruß

    Eidgenosse

    1. Hallo Eidgenosse,

      super, damit funktioniert es. Wäre ich glaub ich nie selbst drauf gekommen.

      Vielen Dank.
      Gruß
      Jutta

  2. Hallo Jutta,

    nennst Du wirklich Funktion und Variable wirklich xy, oder war das jetzt nur für's Posting? In diesem Fall wird die Funktion durch die Var zerstört, weil überschrieben...

    Gruß

    1. Ne, war nur für das Posting so. Normalerweise haben die schon andere Namen.

      Gruß
      Jutta

  3. Hallo,

    ich habe ein Problem mit der Funktion window().
    Ich habe auf meiner Seite einen Link, der folgende Javascript-Funktion aufruft:

    function xy() {
       xy = window.open ("xy.php", "Fenster1", "width=655,height=450,scrollbars=no,left=191,top=200");
       xy.focus();
    }

    Wenn du dies mit einem Link aufrufst empfehle ich dir dringend, damit auch Besucher die JS abgeschaltet haben, was davon haben, es so zu machen:

    function xy(url)
    {
    var xy = window.open (url, "Fenster1",  "width=655,height=450,scrollbars=no,left=191,top=200");
        xy.focus();
    }

    <A href="xy.php" onclick="xy(this.href);return false;">link</A>

    Was nebenbei auch für dich einfacher zu bearbeiten ist (mit einem HTML Editor z.b.)

    Wenn ich den Link das erste mal aufrufe erscheint auch sofort das gewünschte kleine Fenster. Will ich den Link aber ein zweites mal betätigen (egal ob das alte kleine Fenster schon geschlossen oder noch offen ist) bekomm ich vom IE die Meldung das ein Fehler auf der Seite ist. Netscape macht gar nichts mehr. Erst wenn ich die Ursprungsseite mit dem Link aktualisiere funktioniert es wieder einmal.

    Netscape zeigt in der statusleiste ungefähr folgende Meldung 'es trat ein Javascriptfehler auf. Typein:'javascript:' for details' oder so ähnlich.

    Und wenn du dies befolgst und 'javascript:' eintippst, wird er dir kundtun (und nebenbei wesentlich ausführlicher und genauer als der IE) wo und was für ein Fehler auftrat.

    Beim IE musst du übrigens auf das Ausrufezeichen doppelklicken um eine Meldung zu erhalten, allerdings ist diese meistens nicht besonders erhellen. I.d.R. sowas wie 'Objekt erwartet'

    Struppi.

    1. Hallo Struppi,

      function xy(url)
      {
      var xy = window.open (url, "Fenster1",  "width=655,height=450,scrollbars=no,left=191,top=200");
          xy.focus();
      }
      <A href="xy.php" onclick="xy(this.href);return false;">link</A>

      wenn ich das so rauskopiere und dann die urls und xy durch meine Angaben ersetze, dann funktioniert das nicht. Dann öffnet er mir die Seite im kompletten Browserfenster und macht nicht ein zusätzliches kleines Fenster auf.

      Gruß
      Jutta

      1. Hallo Struppi,

        function xy(url)
        {
        var xy = window.open (url, "Fenster1",  "width=655,height=450,scrollbars=no,left=191,top=200");
            xy.focus();
        }
        <A href="xy.php" onclick="xy(this.href);return false;">link</A>

        wenn ich das so rauskopiere und dann die urls und xy durch meine Angaben ersetze, dann funktioniert das nicht. Dann öffnet er mir die Seite im kompletten Browserfenster und macht nicht ein zusätzliches kleines Fenster auf.

        Och Mensch, guck doch bitte genau hin.
        Du hast das return false weggemacht und zusätlich irgendwo eine Targetangabe.

        Struppi.