Bjoern: Link im extra Fenster über Formular öffnen

Hallo,

ich suche eine Möglichkeit einen Link im extra Fenster zu öffnen über ein Formularfeld. Oder anders gesagt, der User gibt in einem Formuarfeld eine URL ein, klickt auf einen "Submit-Button" und der Link öffnet sich in einem extra Fenster :-)
Gibt es da vielleicht schon ein fertiges Script?

Vielen Dank schon mal,
Bjoern

  1. Moin Moin !

    Gibt es da vielleicht schon ein fertiges Script?

    Wahrscheinlich.

    Aber SelfHTML hilft Dir auch:
    Das FORM-Element hat u.a. ein Action- und ein Target-Attribut.
    Beide kannst Du per Javascript setzen.
    Beim Abschicken eines Formulars wird der onsubmit-Event des FORM-Elements ausgelöst.
    Beim Klicken eines Buttons wird dessen onclick-Event ausgelöst.
    An den Wert eines Formularelements kommmst Du mit Javascript ran und kannst diesen Wert dazu benutzen, andere Attribute zu verändern.

    Bleibt die Frage: Wozu?

    Mein Browser hat eine Adresszeile, da brauche ich überhaupt kein Formular. Und ein neues Browser-Fenster mache ich sowieso dann auf, wenn es *mir* paßt.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
  2. Hallo Bjoern,

    vielleicht hilft Dir das hier weiter:

    Im <head>-Tag:
    <script language="JavaScript" type="text/javascript">
    <!-- Hide script from old browsers
    function eingabewert() {
     window.open(document.formu.eingabe.value,'','');
    }
    //-- Stop hiding script -->
    </script>

    Im <body>-Tag:
    <form name="formu" method="post" action="">
    <input name="eingabe" type="text" size="50"><input name="go" onClick="javascript:eingabewert()" type="button" value="go">
    </form>

    Gruß
    DerWeb

    1. Moin Moin !

      Und was passiert, wenn Du in dem Textfeld einfach mal auf ENTER drückst?

      Richtig, die aktuelle Seite wird per POST-Request neu angefordert. Entweder weigert sich der Server (beim Massenhoster), oder Du erreichst nur einen umständlichen Reload.

      Aber es kommt kein neues Fenster, weil Du den Submit-Event nicht abfängst.

      Fertiger Code ist nicht immer die beste Antwort.

      Alexander

      --
      Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
      1. Na dann halt so:

        <script language="JavaScript" type="text/javascript">
        <!--
        function keyCheckEnter(eventObj, obj) {
         var keyCode;
         if (document.all) {
          keyCode = eventObj.keyCode;
         }
         else {
          keyCode = eventObj.which;
         }
         var str = obj.value;
         if (keyCode == 13) {
          window.open(document.formu.eingabe.value,'','');
          return false;
         }
        }
        function eingabewert() {
         window.open(document.formu.eingabe.value,'','');
        }
        // -->
        </script>

        <form name="formu" method="post" action="">
        <input name="eingabe" type="text" value="http://" onKeyPress="return keyCheckEnter(event, this)" size="50">
        <input name="go" onClick="javascript:if (document.formu.eingabe.value != 'http://') { eingabewert(); }" type="button" value="go">
        </form>

        Besser so Alexander? ;-)

        Gruß

        1. Hallo,

          (...) Besser so Alexander? ;-)

          Er sagte, dass der submit-Event abgefangen werden sollte (onsubmit), damit lässt sich das Problem viel einfacher und zuverlässiger lösen. Alles andere ist Käse.

          onclick="javascript:..." ist übrigens Unsinn, siehe Archiv. Und ein language-Attribut für ein script-Element ist unnötig.
          window.open(document.formu.eingabe.value,'',''); -> Der zweite Parameter sollte gefüllt sein (Fenstername), der dritte ebenfalls *oder* komplett weggelassen werden.

          Grüße,
          Mathias

        2. Moin Moin !

          Besser so Alexander? ;-)

          Nein. Es kuriert am Symptom, nicht am Problem. Siehe auch mein vorheriges und molilys Posting.

          Mal davon abgesehen ist die Browserweiche mangelhaft. document.all existiert im Opera 6 z.B. nur, wenn der sich als IE ausgibt. Aber das Event-Handler-Verhalten im Opera ändert sich deswegen nicht.

          Befaßte sich diese Diskussion um Medizin, Sir, würde ich Euch einen Quacksalber nennen.

          Alexander

          --
          Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
          1. Moin Moin !

            stelle Deine fachliche Kompetenz nicht in Frage! Wollte einfach nur nen Tip abgeben. Auch wenn Du berechtigte Einwände hast, den Zweck hat meine Antwort erfüllt. Und mit Randgruppenbrowsern wie Opera und Konsorten beschäftige ich mich in der Tat nicht. ( http://www.webhits.de/deutsch/index.shtml?/deutsch/webstats.html ) Von mir aus - nenn mich einen Quacksalber, wenn es Dich befriedigt.

            Gruß
            DerWeb

        3. Schönen Dank DerWeb und allen anderen natürlich auch!

          Die Lösung von DerWeb ist für mein Problem völlig ausreichend.

          Mir ist geholfen :-)

          Björn

  3. hi,

    ich suche eine Möglichkeit einen Link im extra Fenster zu öffnen über ein Formularfeld. Oder anders gesagt, der User gibt in einem Formuarfeld eine URL ein, klickt auf einen "Submit-Button" und der Link öffnet sich in einem extra Fenster :-)
    Gibt es da vielleicht schon ein fertiges Script?

    Gibt es dafür vielleicht irgendeine sinnvolle Notwendigkeit?

    wofür soll sowas gut sein?

    ein neues fenster/tab/instanz meines browsers zu öffnen bekomme ich alleine hin, url eingeben & aufrufen dann auch noch.

    gruss,
    wahsaga