Установить входной текст внутри iframe и отправить

Я пытаюсь склеить две веб-службы, передавая значение от одного к другому, к сожалению, нет API или четкого способа взлома поискового запроса, поэтому мне нужно установить значение ввода внутри iframe.

вот разметка для ужасного 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>

Мне нужно установить текст searchTerm, а затем отправить форму.

Примечание: это происходит на мобильном телефоне, поэтому я предпочел бы действительно легкое решение

3 ответов


разве это не так просто, как:

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

убедитесь, что ваш скрипт запускается после iframe загружается. Ваш iframe тега onload событие, которое можно использовать для определения загрузки страницы в кадре.

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

просто имейте в виду, что если источник вашего iframe не поступает с вашего сервера, невозможно получить доступ к его содержимому с помощью javascript со страницы, содержащей iframe. Если у вас есть доступ к содержимому iframe, поступающему с другого сервера, вы можете получить доступ ко всем данным с родительской страницы с помощью:

window.top

Если у вас нет доступа к странице iframe, то вы ничего не можете сделать.


вы можете получить доступ к веб-службе из вашего кода сервера?

Если это так, я бы уволил iframe и создал прокси-сервер на вашем сервере. Это позволит сохранить ваш HTML чистым и легким для вашей целевой аудитории.