HighDots Forums  

Form posten hinter einem "if"

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Form posten hinter einem "if" in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Edwin Kapauni
 
Posts: n/a

Default Form posten hinter einem "if" - 01-26-2006 , 08:54 AM






Ich versuche gerade ein Bookmarklet[1] zu modifizieren, scheitere aber
leider schon in den Anfängen. Vielleicht kann mir hier jemand weiterhelfen?

Ausgangsbasis ist das hier[1]:

javascript:q = "" + (window.getSelection ? window.getSelection() :
document.getSelection ? document.getSelection() :
document.selection.createRange().text);
if (!q) q = prompt("You didn't select any text. Enter a search
phrase:", "");
if (q!=null) location="http://www.google.com/search?q=" +
escape(q).replace(/ /g, "+");
void 0

Beim zweiten "if" möchte ich ein <form> abschicken, etwa:

<form name=Edwin method="post" action="...">
<input type="hidden" name="..." value="...">
<input type="hidden"name="..." value="...">
</form>
document.Edwin.submit();

Dabei soll der selektierte Text als value an eines Input-Elemente
übergeben werden.

[1]<http://www.squarefree.com/bookmarklets/search.html#google>

Reply With Quote
  #2  
Old   
Martin Honnen
 
Posts: n/a

Default Re: Form posten hinter einem "if" - 01-26-2006 , 09:33 AM








Edwin Kapauni wrote:


Quote:
Beim zweiten "if" möchte ich ein <form> abschicken, etwa:

document.Edwin.submit();

Dabei soll der selektierte Text als value an eines Input-Elemente
übergeben werden.
if (q != null) {
document.forms.Edwin.elements.inputName.value = q;
document.forms.Edwin.submit();
}

--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
  #3  
Old   
Edwin Kapauni
 
Posts: n/a

Default Re: Form posten hinter einem "if" - 01-26-2006 , 10:11 AM



Martin Honnen wrote:
Quote:
if (q != null) {
document.forms.Edwin.elements.inputName.value = q;
document.forms.Edwin.submit();
}

Danke Martin, mir fehlt es aber leider noch am elementarsten.
An welche Stelle schreibe ich denn den Form selbst?

In meiner Versuchsversion hatte ich so etwas stehen.

if (q!=null) '<body onload=%22document.forms[0].submit()%22>
<form method=%22post%22 action=%22http://fritz.box/cgi-bin/webcm%22>
<input type=%22hidden%22 name=%22telcfg:command/Dial%22
value=%220000000000%22>
<input type=%22hidden%22name=%22telcfg:settings/DialPort%22
value=%2250%22></form></body>'

Das Body-Element wir d ja durch die zweite Langzeile in Deinem Vorschlag
ersetzt. Aber wohin denn nun mit dem Rest von dem Dingens?


Reply With Quote
  #4  
Old   
Martin Honnen
 
Posts: n/a

Default Re: Form posten hinter einem "if" - 01-26-2006 , 10:19 AM





Edwin Kapauni wrote:

Quote:
Martin Honnen wrote:


if (q != null) {
document.forms.Edwin.elements.inputName.value = q;
document.forms.Edwin.submit();
}

An welche Stelle schreibe ich denn den Form selbst?
Huch, das Formular existiert gar nicht? Dann muesstest du das erst
erzeugen, per DOM kann man Elemente per createElement erzeugen, also

var form = document.createElement('form');
form.method = 'POST';
form.action = 'http://fritz.box/cgi-bin/webcm';
var input = document.createElement('input');
input.name = 'inputName';
input.value = input.defaultValue = q;
form.appendChild(input);
document.body.appendChild(form);
form.submit();



--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
  #5  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Form posten hinter einem "if" - 01-26-2006 , 10:23 AM



Edwin Kapauni wrote:

Quote:
Martin Honnen wrote:
if (q != null) {
document.forms.Edwin.elements.inputName.value = q;
document.forms.Edwin.submit();
}

Danke Martin, mir fehlt es aber leider noch am elementarsten.
In der Tat.

Quote:
An welche Stelle schreibe ich denn den Form selbst?
In das HTML-Dokument; konkret: als Nachfahre des `body'-Elements.

Quote:
In meiner Versuchsversion hatte ich so etwas stehen.

if (q!=null) '<body onload=%22document.forms[0].submit()%22
form method=%22post%22 action=%22http://fritz.box/cgi-bin/webcm%22
input type=%22hidden%22 name=%22telcfg:command/Dial%22
value=%220000000000%22
input type=%22hidden%22name=%22telcfg:settings/DialPort%22
value=%2250%22></form></body>'
Was immer das auch ist, es ist kein HTML, und auch kein JS/ECMAScript,
das irgendetwas bewirkt.

Quote:
Das Body-Element wir d ja durch die zweite Langzeile
(Was bitte ist eine "Langzeile"?)

Quote:
in Deinem Vorschlag ersetzt.
Du hast "die Formulardaten werden durch die zweite Anweisung im Block
per HTTP-Anfrage an den Webserver gesendet und als Ergebnis wird die
HTTP-Antwort des Webservers angezeigt" nicht unwesentlich fhcsal
geschrieben.

Quote:
Aber wohin denn nun mit dem Rest von dem Dingens?
Bevor Du anfängst, das DOM eines UAs zu scripten, solltest Du wenigstens
verstanden haben, wie das Web funktioniert: <URL:http://de.selfhtml.org/>


PointedEars


Reply With Quote
  #6  
Old   
Edwin Kapauni
 
Posts: n/a

Default Re: Form posten hinter einem "if" - 01-27-2006 , 10:32 AM



Martin Honnen wrote:
Quote:
Huch, das Formular existiert gar nicht? Dann muesstest du das erst
erzeugen, per DOM kann man Elemente per createElement erzeugen, also

var form = document.createElement('form');
form.method = 'POST';
form.action = 'http://fritz.box/cgi-bin/webcm';
var input = document.createElement('input');
input.name = 'inputName';
input.value = input.defaultValue = q;
form.appendChild(input);
document.body.appendChild(form);
form.submit();
Hi Martin,
vielen Dank für die große Hilfe. Das ist mein allererster Versuch mit
Javascript. Jetzt habe ich es soweit, daß es wohl so arbeitet wie ich es
für den ersten Ansatz geplant habe:

<http://home.arcor.de/edwinkapauni/bookmarklet.html>

Als nächstes würde ich es gerne dahingehend modifizieren, daß es den
HTTP-Request noch sendet, aber die Antwort des Servers verwirft. Von
"http://fritz.box/cgi-bin/webcm" soll also nichts im Browser angezeigt
werden.
Kannst Du mir vielleicht auch hierzu noch einen Tip geben?


Reply With Quote
  #7  
Old   
Martin Honnen
 
Posts: n/a

Default Re: Form posten hinter einem "if" - 01-27-2006 , 11:58 AM




Edwin Kapauni wrote:

Quote:
Als nächstes würde ich es gerne dahingehend modifizieren, daß es den
HTTP-Request noch sendet, aber die Antwort des Servers verwirft. Von
"http://fritz.box/cgi-bin/webcm" soll also nichts im Browser angezeigt
werden.
Kannst Du mir vielleicht auch hierzu noch einen Tip geben?
Dann benutze XMLHttpRequest, siehe
<http://www.faqts.com/knowledge_base/view.phtml/aid/17226/fid/616>
<http://jibbering.com/2002/4/httprequest.html>


--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.