我正在尝试通过将值从一个传递给另一个来粘合两个Web服务,遗憾的是没有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文本然后提交表单。
注意:这是移动的,所以我更喜欢一个非常轻量级的解决方案
答案 0 :(得分:7)
不是那么简单:
myframe.document.getElementById("searchForm").searchTerm.value = 'hello';
myframe.document.getElementById("searchForm").submit();
确保您的脚本在加载iframe
后运行。您的iframe
代码有一个onload
事件,可用于确定何时加载框架中的页面。
<iframe src="formPage.html" onload="loaded()" name="myframe" />
答案 1 :(得分:6)
请注意,如果您的iframe源不是来自您的服务器,则无法使用包含iframe的网页中的javascript访问其内容。如果您可以访问来自其他服务器的iframe内容,则可以使用以下命令访问父页面中的所有数据:
window.top
如果您无法访问iframe的页面,那么您无能为力。
答案 2 :(得分:2)
您是否可以从服务器代码访问Web服务?
如果是这样,我会解雇iframe并在您的服务器上创建代理。这样可以使您的HTML保持干净,轻松,适合目标受众。