2016-05-10 4 views
0

In Firefox, wenn die Formularübermittlung aus Gründen wie der Website fehlschlägt usw. können wir das Formular erneut einreichen und es funktioniert.Erneutes Einreichen eines Formulars nach einem Fehler in Google Chrome wie in Firefox

Von diesem official site discussion Ich verstehe, dass Chrome den Formularcache beim Drücken der Zurück-Taste oder bei einem Fehler nicht behält.

Wie kann ich diese Funktionalität mithilfe der Erweiterung hinzufügen?

+0

Möchten Sie eine Erweiterung schreiben, die das tut? Wenn ja, welcher Teil ist problematisch? – Xan

+0

Okay, da du nicht selbst einen schreiben willst, ist das [off-topic on SO] (http://stackoverflow.com/help/on-topic). – Xan

+0

@Xan Entschuldigung .. Ich beabsichtige, es selbst zu schreiben und jetzt auch. – user5858

Antwort

0

Ihre Frage ist jetzt, "ist es möglich, eine Chrome-Erweiterung zu machen, die ein Formular speichert, falls etwas Schlimmes passiert".

Antwort ist: Ja für einige Formen. Aber ein allgemeiner, 100% zuverlässiger Ansatz ist nicht wirklich möglich.

Solche Erweiterungen existieren bereits. Sie funktionieren jedoch nicht immer gut.

Wie für Architektur, ein sinnvoller Ansatz wäre dies:

  1. auf allen Seiten ein Content-Skript injizieren, die Formulare, die Sie verfolgen möchten (vielleicht alle) enthalten.
  2. Erkennen Sie Formulare auf der Seite. Kniffeliger Teil # 1: In unserer AJAX-Welt muss nicht alles eine Form sein, um als solche verwendet zu werden. Ich nehme an, Sie könnten ALLE Eingabefelder auf ihre Werte und Wertänderungen überwachen und die neueste Version speichern.
  3. Erfasst Eingaben. Tricky Teil # 2: Es kann eine Form submit sein, oder kann etwas JavaScript sein, das XHR alleine macht. webRequest API kann helfen, aber wieder, im Allgemeinen ist es schwer zu bestimmen, was eine "Formulareinreichung" ist. Eine Suche aus kann eine vollkommen sinnvolle GET-Anfrage generieren - ist das eine "Formularübergabe"?
  4. Wiederherstellen eines Formulars in einen Vorab-Status. Kniffliger Teil # 3: Er kann ernsthaft mit eigenen Skripts kollidieren (wenn Sie zum Beispiel für eine eckige Seite nur den Wert einer Eingabe mit JS ändern, wird das Modell nicht aktualisiert).
Verwandte Themen