Greasemonkey: Form Action ersetzen

chris770

Grünschnabel
Hallo Gemeinde,

ich nutze eine Weboberfläche zur Systembetreuung - soweit so gut. Je nach Art der Änderungen, wird eine Warnseite zwischengeschaltet, die diverse Hinweise einblendet. Diese zwischengeschaltete Seite nervt im täglichen Umgang. An dem System selber kann nix geändert werden, also muss ich das auf meiner Clientseite machen. Da kam mir die Idee mit Greasemonkey. Allerdings komme ich bei einer Sache nicht weiter, da Javascript nicht gerade mein Steckenpferd ist.

Der original Quelltext der Ausgangsseite sieht wie folgt aus:

Code:
<form action='http://servername/save.html?servername2/content.html' target='_blank' method='post'><input type='submit' name='Save' value='Save'></form>

Wenn ich da nun auf den Button drücke, öffnet sich die Seite save.html auf der sich ein weiterer Button befindet, der mich auf die Seite content.html leitet. Die Seite content.html ist nur ein Beispiel und ändert sich dynamisch.

Kopiere ich mir den Seitennamen content.html aus dem Quelltext im Browser, und rufe diese direkt auf (ohne über save.html zu gehen), funktioniert auch alles, nur eben ohne den Umweg über die zwischengeschaltete Seite.

Ich habe jetzt vor, die Seite so anzupassen, dass die Action der Form so abgeändert wird, dass als Formaction servername2/content.html eingetragen wird.

Folgendes Beispiel funktioniert leider nicht:

Code:
var AllForms = new Array();
AllForms = document.getElementsByTagName("form");
alert(AllForms[1].action.substring(82));

AllForms[1].action = AllForms[1].action.substring(82);

Die Form, die ich verändern will, ist immer die 2. im Dokument Mein eingebauter "Debugalert" zeigt mir auch den richtigen String an, den ich gerne als Formaction nutzen würde. Somit denke ich, dass meine letzte Zeile fehlerhaft ist!

Hat jemand einen Tipp?

Danke, Chris
 
Meine angegebenen Links sind nur Beispiele und in real wesendlich länger - das mit den Substring Index passt schon ;-) Aber dennoch wird meine Formaction nicht abgeändert :-(
 
Den original Sourcecode der Form hatte ich ja bereits gepostet. Neben 3 solcher Formen ist in der Seite nicht viel mehr enthalten.

ABER

Ich habe mir das ganze mal nachgebaut und siehe da, es funktionierte auch im Nachbau nicht, da die Argumente per 'post' method übergeben werden und meine nachgebaute Seite natürlich über standard I/O keine Argumente entgegen nimmt. Also habe ich in meinem Script neben Form.action auch die Form-method auf 'get' geändert.
Dann funktionierte mein Nachbau. Habs gerade mal mit der eigentlichen Webseite getestet und siehe da...auch hier gehts.

Also gehe ich mal davon aus, dass es an der Form.method lag. Aber kann das? Hätte meine Form.action nicht trotzdem überschrieben werden müssen? Natürlich mit Fehlermeldung, wenn die aufgerufene Seite kein 'post' unterstützt.

Ich bin zwar froh, dass es jetzt läuft, trotzdem bin ich für Tipps dankbar, die mir vielleicht erklären könnten, was das mit der method zu tun hat. Das erschließt sich mir überhaupt nicht.

Chris
 

Neue Beiträge

Zurück