Katarina: Auswahlliste öffnet neues Fenster und nicht neuer Tab

Hallo

ich habe da ein Problem und hoffe auf Eure Tipps. Ich habe eine Auswahlliste, die funktioniert super.

Sie beginnt mit

<form>
<select name="Auswahl" size="1" onChange="window.open(this.options[this.selectedIndex].value)">
<option value="1">Bitte auswählen</option>
<option value="dateiname.html"

usw. usw.

Ich möchte nun zwei Sachen erreichen
a) soll sich kein neuer Tab, sondern tatsächlich ein neues Fenster öffnen, das bekome ich gar nicht hin. Denn ich will (und das ist mein 2. Problem)

b) dieses neue Fenster in seiner Größe begrenzen. Das wollte ich über "width=300,height=200,scrollbars=yes");
nach dem value) in der onChange Reihe lösen. Das hat nicht geklappt. Nun bin ich auf die Idee gekommen das neue Fenster mit
<body onload="window.resizeTo(580, 420)"></body>
zu begrenzen. Das funktioniert auch, nur das eben ein Tab im Browser geöffnet wird und somit auch das ursprüngliche Fenster reduziert wird. Aber das ist ja nicht Sinn der Sache. Das Ursprungsfenster soll in voller Größe erhalten bleiben.

Hat da jemand einen Tipp? Die Liste mit dem <form> muss übrigens so bleiben.

Liebe Grüße

Katarina

  1. Hi,

    <select name="Auswahl" size="1" onChange="window.open(this.options[this.selectedIndex].value)">

    b) dieses neue Fenster in seiner Größe begrenzen. Das wollte ich über "width=300,height=200,scrollbars=yes");
    nach dem value) in der onChange Reihe lösen.

    Und in wie fern nimmst du an, würde ein derart unorthodox gewählter Fenstername die Maße dieses Fensters beeinflussen?

    http://de.selfhtml.org/javascript/objekte/window.htm#open

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hallo Chris,

      hab ja auch gesagt, das es nicht funktioniert. War halt mein erster Ansatz. Ich will ja auch kein JS als Lösung aber ein Versuch war es halt wert. Daher ja auch mein zweiter Ansatz mit dem

      <body onload="window.resizeTo(580, 420)">

      ich finde nur keine Lösung für das Problem, dass ein neues Fenster und nicht nur ein neuer Tab aufgerufen werden soll.

      LG Katarina

      1. Hi,

        hab ja auch gesagt, das es nicht funktioniert.

        Du solltest Chris' Antwort noch mal genau durchlesen. Er hat Dir den Grund genannt, warum es nicht funktioniert, und damit die Lösung impliziert.

        <body onload="window.resizeTo(580, 420)">

        Kids, don't do this at home.

        ich finde nur keine Lösung für das Problem, dass ein neues Fenster und nicht nur ein neuer Tab aufgerufen werden soll.

        Das ist der Unterschied zwischen uns: Ich finde dabei kein Problem.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi Cheatah,

          <body onload="window.resizeTo(580, 420)">
          Kids, don't do this at home.

          oh, warum nicht? Ich würde sagen: Kids, don't do that anywhere but at home.

          ich finde nur keine Lösung für das Problem, dass ein neues Fenster und nicht nur ein neuer Tab aufgerufen werden soll.
          Das ist der Unterschied zwischen uns: Ich finde dabei kein Problem.

          Aber wenn sie's doch unbedingt will ... ;-)

          Ciao,
           Martin

          --
          Frauen sind wie Elektrizität: Fasst man sie an, kriegt man eine gewischt.
  2. Hi,

    <select name="Auswahl" size="1" onChange="window.open(this.options[this.selectedIndex].value)">
    <option value="1">Bitte auswählen</option>
    <option value="dateiname.html"

    ich hoffe, du hast noch eine Fallback-Lösung parat, falls Javascript nicht zur Verfügung steht.

    Ich möchte nun zwei Sachen erreichen
    a) soll sich kein neuer Tab, sondern tatsächlich ein neues Fenster öffnen, das bekome ich gar nicht hin.

    Das wäre auch sehr erstaunlich, denn du weist den Browser nur an: Mach mir ein neues Fenster auf. Ob dieses Fenster nun eine neue Browserinstanz ist oder nur ein neuer Tab in der aktiven Instanz (auch ein Tab ist ein Fenster!), ist eine Sache der Browserkonfiguration, die du als Webautor nicht in der Hand hast.

    Denn ich will (und das ist mein 2. Problem)
    b) dieses neue Fenster in seiner Größe begrenzen.

    Dieser Wunsch verträgt sich aus naheliegenden Gründen auch nicht mit dem Tab-Konzept heutiger Browser; es ist daher aus deiner Sicht Glückssache, was dabei herauskommt; aus der Sicht des Besuchers ist es das, was er am liebsten hat und dementsprechend als Standardverhalten eingestellt hat.

    <body onload="window.resizeTo(580, 420)">
    zu begrenzen. Das funktioniert auch ...

    ... wenn der Anwender das Öffnen eines neuen, eigenständigen Fensters zulässt *und* das Verändern der Fenstergröße durch Javascript zulässt.

    Hat da jemand einen Tipp?

    Nein. Ich sehe keine andere Chance, als dich mit den zunehmenden Einschränkungen der Browser durch die nutzerseitige Konfiguration abzufinden, und innerhalb dieser Grenzen das Beste daraus zu machen.

    So long,
     Martin

    --
    Die junge Ehefrau weint sich bei ihrer Mutter aus:
    "Er hat gesagt, ich soll mich zum Teufel scheren!" - "Und da kommst du ausgerechnet zu mir?!"
    1. Hallo Martin

      ich hoffe, du hast noch eine Fallback-Lösung parat, falls Javascript nicht zur Verfügung steht.

      Danke für Deine Infos, das klingt gar nicht gut,

      und sorry, an den Fallback hab ich auch nicht gedacht :-(
      meinst du sowas

      <form>
      <select name="Auswahl" size="1" onChange="window.open(this.options[this.selectedIndex].value){return false}else{location.href=this.value}">
      <option value="1">Bitte auswählen</option>
      <option value="

      1. Hi,

        ich hoffe, du hast noch eine Fallback-Lösung parat, falls Javascript nicht zur Verfügung steht.
        Danke für Deine Infos, das klingt gar nicht gut,

        naja, kommt auf den Standpunkt an. Aus Autorensicht ist es sicher eine Einschränkung der Möglichkeiten.

        und sorry, an den Fallback hab ich auch nicht gedacht :-(
        meinst du sowas

        <form>
        <select name="Auswahl" size="1" onChange="window.open(this.options[this.selectedIndex].value){return false}else{location.href=this.value}">

        Ähm, nein. Das produziert einen Syntaxfehler, wenn JS aktiv ist, und eine nutzlose Selectbox, wenn JS inaktiv ist. Ich meinte eher eine gewöhnliche Liste von Links irgendwo, die auch ohne JS benutzbar sind. Falls diese Liste die Ästheten stört, kann man sie ja mit JS (sobald verfügbar) unsichtbar machen.
        Oder spendiere deinem Formular noch einen submit-Button und eine serverseitige Verarbeitung, die je nach Auswahl auf die gewünschte Zielseite weiterleitet.

        Nebenbei: Ich finde es sowieso lästig (weil unerwartet), wenn bereits das Auswählen aus einer Liste eine Aktion auslöst. Einmal verklickt, schon ist die Seite weg oder zumindest eine neue geöffnet.

        Ciao,
         Martin

        --
        Frage an Radio Eriwan: Kann man eigentlich ein guter Kommunist und gleichzeitig ein guter Christ sein?
        Radio Eriwan antwortet: Im Prinzip ja - aber warum sollte man sich das Leben doppelt schwer machen?
        1. Danke Martin!

          naja, kommt auf den Standpunkt an. Aus Autorensicht ist es sicher eine Einschränkung der Möglichkeiten.

          ich finds jetzt gerade doof ;-)

          Ich meinte eher eine gewöhnliche Liste von Links irgendwo, die auch ohne JS benutzbar sind. Falls diese Liste die Ästheten stört, kann man sie ja mit JS (sobald verfügbar) unsichtbar machen.

          Dann bin ich beruhigt ja sowas habe ich als noscript im head und funktioniert sogar :-)

          Nebenbei: Ich finde es sowieso lästig (weil unerwartet), wenn bereits das Auswählen aus einer Liste eine Aktion auslöst. Einmal verklickt, schon ist die Seite weg oder zumindest eine neue geöffnet.

          Stimmt aber es ist nicht die Hauptseite oder Hauptnavi, sondern nur eine Auswahl am Ende wo es weitere nützliche Infos gibt.

          Danke nochmals

          LG Katarina

      2. Hi,

        <form>

        das <form>-Element benötigt zwingend ein action-Attribut. Und schon hast Du die Möglichkeit, eine serverseitige Script-Logik einzusetzen, die das Formular auswertet, weiterleitet und somit Deinen Fallback darstellt.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
    2. Hi,

      <body onload="window.resizeTo(580, 420)">

      Wie kann ich genau dieses verhindern? Das Webradio von Antenne1 verändert immer meine Standart Fenstergrösse was gewaltig nervt.

      ... wenn der Anwender das Öffnen eines neuen, eigenständigen Fensters zulässt *und* das Verändern der Fenstergröße durch Javascript zulässt.

      Wie kann ich beides beim FF verhindern?

      LG

      1. Hi,

        <body onload="window.resizeTo(580, 420)">
        Wie kann ich genau dieses verhindern?

        in about:config die Einstellung dom.disable_window_move_resize auf true setzen.

        ... wenn der Anwender das Öffnen eines neuen, eigenständigen Fensters zulässt *und* das Verändern der Fenstergröße durch Javascript zulässt.
        Wie kann ich beides beim FF verhindern?

        Ich bin nicht sicher, aber in der Theorie:

        browser.link.open_newwindow auf 3 setzen,
        browser.link.open_newwindow.restriction auf 0 setzen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. @@Cheatah:

          nuqneH

          <body onload="window.resizeTo(580, 420)">
          Wie kann ich genau dieses verhindern?
          in about:config die Einstellung dom.disable_window_move_resize auf true setzen.

          Oder im UI: Extras > Einstellungen > Inhalt > neben "JavaScript aktivieren": Erweitert > [ ] Existierende Fenster verschieben oder deren Größe ändern

          ... wenn der Anwender das Öffnen eines neuen, eigenständigen Fensters zulässt *und* das Verändern der Fenstergröße durch Javascript zulässt.
          Wie kann ich beides beim FF verhindern?
          Ich bin nicht sicher, aber in der Theorie:
          browser.link.open_newwindow auf 3 setzen,

          Oder im UI: Extras > Einstellungen > Tabs > [X] Statt neuem Fenster neuen Tab öffnen

          Qapla'

          --
          Volumen einer Pizza mit Radius z und Dicke a: pi z z a
        2. Hi!

          ... wenn der Anwender das Öffnen eines neuen, eigenständigen Fensters zulässt *und* das Verändern der Fenstergröße durch Javascript zulässt.
          Wie kann ich beides beim FF verhindern?

          Ich bin nicht sicher, aber in der Theorie:

          browser.link.open_newwindow auf 3 setzen,
          browser.link.open_newwindow.restriction auf 0 setzen.

          Dazu ein Linktipp: http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries. Leider lassen sich die genannten Einträge nicht direkt anspringen/verlinken, also bitte selbst runterrollen.

          Und am leidersten™ finde ich, dass man browser.link.open_external ersatzlos gestrichen hat. Wer Ersatz kennt, so dass Links auf Webseiten keinesfalls ein neues Tab/Fenster öffnen, externe Links (aus anderen Anwendungen) aber doch einen neuen Tab öffnen, kann mir dies gern mitteilen. Aber .. moment .. ich seh da grade (ganz unten), es gibt ein Plugin, und das geht nach dem ersten Test sogar zu meiner Zufriedenheit, so dass ich nun den 3.0 in den Ruhestand schicken kann.

          Lo!