Link im extra Fenster über Formular öffnen
Bjoern
- javascript
0 Alexander Foken0 DerWeb0 Alexander Foken0 DerWeb0 molily0 Alexander Foken0 DerWeb
0 Bjoern
0 wahsaga
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
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
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
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
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ß
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
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
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
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
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