Ich versuche, Form Submits von Webseiten abfangen, die ich nicht kontrolliere.JavaScript: Abfangen Formular senden und identifizieren, welches Formular die Einreichung
Meine aktuelle Implementierung ist ...
// During onLoad, loop through all forms and for each form object
var prevonsubmit = formobj.onsubmit;
if (prevonsubmit) {
formobj.onsubmit = function f() {
if(prevonsubmit()) {
interceptform();
return true;
}
return false;
};
} else {
formobj.onsubmit = function ff() {
interceptform();
return true;
};
}
Das Problem dabei ist, innerhalb interceptform(), bin ich nicht in der Lage zu erkennen, welche Form gemacht tatsächlich diese Unterwerfung. Gibt es eine Möglichkeit, das Formularobjekt, das versucht wird, zu übergeben? Beachten Sie, dass für einige der Formulare, die ich sehe, kein Name oder keine ID angegeben ist und dass mehr als ein Formular (auf derselben Webseite) mit derselben Aktion vorhanden ist.
Bearbeiten: Der Zweck ist erfassen den Inhalt in den Eingabe-Tags, die zu dem Formular gehören. A aus Beispiel dafür, was ich in einer Form zu sehen:
<form action="https://duckduckgo.com/html/" method="GET">
<input type="text" name="q"/>
</form>
<form action="https://duckduckgo.com/html/" method="GET">
<input type="text" name="l"/>
</form>
<form action="https://duckduckgo.com/html/" method="GET">
<input type="text" name="l"/>
<input type="text" name="q"/>
</form>
Edit2:
Basierend auf @ruakh Antwort, die Lösung, die ich am Ende mit:
var prevonsubmit = formobj.onsubmit;
if (prevonsubmit)
formobj.onsubmit = createOnSubmitFunctionWithOld(prevonsubmit, formobj);
else
formobj.onsubmit = createOnSubmitFunction(formobj);
// Definition of the functions:
function createOnSubmitFunctionWithOld(prevonsubmit,formObj) {
return function() {
if (prevonsubmit()) {
interceptform(formObj);
return true;
}
return false;
};
}
function createOnSubmitFunction(formObj) {
return function() {
interceptform(formObj);
return true;
};
}
Welchen Zweck hat es zu bestimmen, welches Formular übermittelt wird? Und können Sie die Formulare auf einer Seite mit Beispielen versehen, damit wir sehen können, was Sie damit zu tun haben? – prodigitalson
@ prodigitson, der Zweck ist, Text von der Vorlage zu erfassen. Ich fügte der Frage den Zweck und ein Beispiel von Formen hinzu, die ich sehe. – mani