Mikee: Verweis mit Input-Button Java

Hallo alle zusammen,

ich habe mich ein wenig durch self-html durchgelesen. Und bin begeistert alles strukturiert aufgebaut und erklärt. Super zum Einarbeiten. Html klappt schon ganz gut aber bei Java fehlt mir noch etwas das Verständnis. Deshalb hoffe ich, dass ihr mir bei meinem kleinen Problem helfen könnt.

Ein <input>Feld mit einer fest eingestellten URL (input-->value=URL) soll mittels eines <input>Buttons in einem neuen Fenster aufgerufen werden. Da unten seht ihr meinen gescheiterten Ansatz.

  
<!-- Input-Feld mit URL -->  
<form name="formurl" action="">  
<input id="url" name="url" type="text" size="30" maxlength="30" value="http:\\www.google.de" readonly>  
</input>  
</form>  
<!-- Button -->  
<input name="urlverweis" type="submit" onClick="window.open(href='document.forms["formurl"].elements.???')" value="URL" class="enter">  
</input>  

MfG.
Mikee

  1. Moin Moin!

    Html klappt schon ganz gut aber bei Java fehlt mir noch etwas das Verständnis.

    In Deinem Code-Fragment ist kein Java vorhanden, nur Javascript. Java und Javascript haben *NICHTS* miteinander zu tun. Dass sie die ersten vier Buchstaben gemeinsam haben, ist allein irgendeinem Marketing-Menschen zu verdanken, den man dafür mal über's Knie legen sollte. ;-)

    Ein <input>Feld mit einer fest eingestellten URL (input-->value=URL) soll mittels eines <input>Buttons in einem neuen Fenster aufgerufen werden.

    Das geht besser ohne Javascript, mit einem target-Attribut im Form-Element. Die Ziel-URL trägst Du im action-Attribut ein, den Rest erledigt der Browser von selbst.

    Wenn Du keine weiteren Informationen übertragen willst, kannst Du auch komplett auf Formular und Button verzichten, stumpf mit einem a-Element einen Link bauen und dem per target-Attribut ein anderes Zielfenster geben. Wenn der Link nach einem Button aussehen soll, kannst Du ihn per CSS umformatieren.

    Beachte, dass nicht jeder Browser neue Fenster öffnen *kann* und *darf*. Viele moderne Browser öffnen stattdessen einen neuen Tab, andere Browser haben überhaupt kein Fenster-Konzept, sondern zeigen immer exakt eine Seite an (sprich: sie ignorieren das target-Attribut komplett).

    Da unten seht ihr meinen gescheiterten Ansatz.

    <!-- Input-Feld mit URL -->
    <form name="formurl" action="">
    <input id="url" name="url" type="text" size="30" maxlength="30" value="http:\www.google.de" readonly>

    In URLs kommen Backslashes () extrem selten vor. Zwischen Protokoll und Server gehören sie auf gar keinen Fall, hier sind Forward Slashes (/) angesagt. Das gilt auch für den Übergang zwischen Server-Namen und Pfadangabe. In der Pfadangabe selbst könnten Backslashes auftauchen, das ist aber extrem unüblich und dürfte mit den Standard-Einstellungen diverser IE-Versionen zu ziemlichen Problemen führen (weil der IE die Backslashes gerne mal in Forward Slashes ändert). Daumenformel: In URLs gehören keine Backslashes.

    </input>
    </form>
    <!-- Button -->
    <input name="urlverweis" type="submit" onClick="window.open(href='document.forms["formurl"].elements.???')" value="URL" class="enter">
    </input>

    Der Submit-Button gehört ins Formular, nicht dahinter. Und er braucht kein schließenes Tag (ich denke sogar, dass das schließende Tag verboten ist).

    Das name-Attribut beim Submit-Button erzeugt einen zusätzlichen Parameter. Das stört zwar meistens nicht, ist aber trotzdem überflüssig.

    [ref:self812;javascript/objekte/window.htm#open@title=window.open] erwartet mehr als einen Parameter.

    Die Notation href='...' weist der Variablen href einen Wert zu und übergibt diesen Wert zusätzlich als ersten Parameter an window.open.

    Das onclick-Attribut endet für viele Browser nach dem [, weil Du die Quotes nicht maskiert hast. Siehe [link:http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel@title=Artikel Kontext-Wechsel]

      
    Bei allen verlockenden Möglichkeiten, die Javascript bietet: Versuche, OHNE Javascript auszukommen. Nicht jeder Browser \*kann\* und \*darf\* Javascript ausführen, Suchmaschinen kommen mit JS in der Regel gar nicht zurecht oder raten sehr schlecht, was das JS in der jeweiligen Seite treibt. Erst wenn eine Seite / Site ohne JS funktioniert, solltest Du auf JS basierende Erleichterungen einbauen, falls Du das dann überhaupt noch für notwendig hältst.  
      
    Alexander
    
    -- 
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".