Festlegen von Eingabetext in iframe und Senden

Ich versuche, zwei Webdienste zusammenzukleben, indem ich einen Wert von einem zum anderen übergebe, leider gibt es keine API oder eine klare Möglichkeit, die Suchabfrage zu hacken, also muss ich den Wert einer Eingabe in einem iframe festlegen.

Hier ist das Markup für den schrecklichen iframe.

<form id="searchForm" method="post" action="/search/initialSearch">         
  <fieldset class="searchFields">
    <input type="text" name="searchTerm" value=""/>
    <input type="submit" value="Find stops"/>
  </fieldset>
</form>

Ich muss den searchTerm-Text festlegen und dann das Formular absenden.

Hinweis: Das geht über Handy, also würde ich eine wirklich leichte Lösung

bevorzugen

Antwort auf "Festlegen von Eingabetext in iframe und Senden " 3 von antworten

Ist es nicht so einfach wie:

myframe.document.getElementById("searchForm").searchTerm.value = 'hello';
myframe.document.getElementById("searchForm").submit();

Stellen Sie sicher, dass Ihr Skript NACH dem iframe is loaded. Your geladen wird. Ihr iframe tag has an Tag hat ein onload event that you can use to determine when the page within the frame is loaded. Ereignis, mit dem Sie bestimmen können, wann die Seite innerhalb des Frames geladen wird.

<iframe src="formPage.html" onload="loaded()" name="myframe" />

Können Sie über Ihren Servercode auf den Webdienst zugreifen?

Wenn ja, würde ich den iframe absacken und einen Proxy auf Ihrem Server erstellen. Dies würde Ihr HTML sauber und leicht für Ihre zielgruppenbereinigte Halten.

beachten Sie nur, dass, wenn die Quelle Ihres iframes nicht von Ihrem Server kommt, es unmöglich ist, auf seine Inhalte mit Javascript von der Seite zuzugreifen, die den iframe enthält. Wenn Sie Zugriff auf den Inhalt des iframes haben, der von einem anderen Server kommt, dann können Sie auf alle Daten von der übergeordneten Seite zugreifen mit:

window.top

Wenn Sie keinen Zugriff auf die iframe-Seite haben, dann gibt es nichts, was Sie tun können.