Chriz: Selectbox für neues Fenster (Help)

Ahoi!

aus einer Selectbox wird eine URL ausgewählt. OnChange soll die gewählte URL in einem neuen Browser-Fenster (kein PopUp) geöffnet werden. Wie mache ich das?!?

Hier mein Script:

function serverwahl(x)
   {
      // vorher top, jetzt blank - klappt auch nicht
      blank.document.location.href=x;
   }

Aufruf:
         <select name="serverliste" size=1 onchange="serverwahl(this.form.serverliste.options[this.form.serverliste.options.selectedIndex].value)"  style="background-color:#FFFFFF; font-size:11px; font-family:Arial,sans-serif;width:135px" target="_blank">
        <option value="">Alle Seiten
        <option value="http://www.seite1.de">Seite 1
        <option value="http://www.seite2.de">Seite 2
        <option value="http://www.seite3.de">Seite 3
        </select>

Fehlerabfragen aus Platzgründen gekürzt :-)

Kann mir jemand sagen, wie das funktioniert?!?

Chriz!

  1. Привет, Chriz!

    aus einer Selectbox wird eine URL ausgewählt. OnChange soll die gewählte URL in einem neuen Browser-Fenster (kein PopUp) geöffnet werden.

    Ein neues Fenster, das von einer Webseite geöffnet wird, ist immer ein PopUp, egal, ob angefordert oder unerwünscht.

    Wie mache ich das?!?

    Neue Fenster (bzw. Tabs) öffnest du mit window.open().

    Hier mein Script:

    function serverwahl(x)
       {
          // vorher top, jetzt blank - klappt auch nicht
          blank.document.location.href=x;
       }

    Klar, dass das _so_ nicht funktioniert. Das Objekt blank gibt es nicht, top repräsentiert die oberste Ebene des aktuellen Fensters.

    Aufruf:
             <select name="serverliste" size=1 onchange="serverwahl(this.form.serverliste.options[this.form.serverliste.options.selectedIndex].value)"  style="background-color:#FFFFFF; font-size:11px; font-family:Arial,sans-serif;width:135px" target="_blank">

    Das ist soweit korrekt, allerdings hat das Attribut target hier nichts zu suchen, ist grober Unfug.

    <option value="">Alle Seiten
            <option value="http://www.seite1.de">Seite 1
            <option value="http://www.seite2.de">Seite 2
            <option value="http://www.seite3.de">Seite 3
            </select>

    Ok.

    Bedenke abschließend noch, dass du auch Besucher haben wirst, die in ihren Browsern JavaScript abgeschaltet haben.

    Пока!
    Sven aus Bonn

    --
    Do it yourSELF 'cause SELFmade is bestmade.
    Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
    Selfcode dekodieren - Selfcode-Info
  2. Hallo Chriz,

    Um ein Fenster mit Javascript zu oeffnen, brauchst Du window.open(). Das erste Argument ist die URL, das zweite der Name des Fensters, das dritte sind Maße und Position. Wenn du letzteres weglaesst, hat das im Prinzip die gleiche Wirkung wie ein Link mit dem Attribut target="_blank" in HTML. window.open('http://www.example.com', 'meinSchnuckeligesFenster') oeffnet ein neues Fenster mit der Adresse 'http://www.example.com'. Den Namen kannst Du auch weglassen, der ist aber vonnoeten, wenn Du spaeter auf das Fenster zugreifen willst.

    function serverwahl(x)
       {
          // vorher top, jetzt blank - klappt auch nicht
          blank.document.location.href=x;

    Da gehoert window.open(x) hin anstatt des blank.document.location.href

    }

    x ist allerdings kein besonders guter Variablennamen. Du willst ja noch in 6 Wochen wissen, was die Funktion eigentlich macht, deswegen wuerde ich sowas wie fenster_adresse oder neue_url vorziehen.

    <select name="serverliste" size=1 onchange="serverwahl(this.form.serverliste.options[this.form.serverliste.options.selectedIndex].value)" style....>

    Das ist ein bisschen ueppig. Erstmal nutzt der Style wenig bei der Fehlersuche. Und du brauchst nicht den ganzen Weg ueber die Form zu gehen. this.options[this.options.selectedIndex].value reicht voellig. Mittlerweile wirst Du auch mit this.value kaum auf Problem stossen

    Fehlerabfragen aus Platzgründen gekürzt :-)

    Hast Du irgendwelche Fehlermeldung gepostet? Die muss ich im Meer von Styles uebersehen haben ;-)

    Gruß,

    Dieter