Javascript 在iframe中设置输入文本并提交

Javascript 在iframe中设置输入文本并提交,javascript,html,forms,iframe,Javascript,Html,Forms,Iframe,我试图通过将一个值从一个传递到另一个来将两个web服务粘合在一起,不幸的是,没有API或明确的方法来破解搜索查询,因此我需要在iframe中设置输入的值 下面是可怕的iframe的标记 <form id="searchForm" method="post" action="/search/initialSearch"> <fieldset class="searchFields"> <input type="text" name="se

我试图通过将一个值从一个传递到另一个来将两个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文本,然后提交表单

注意:这是在移动设备上进行的,因此我更喜欢一个真正轻量级的解决方案

它不是像以下那样简单吗:

myframe.document.getElementById("searchForm").searchTerm.value = 'hello';
myframe.document.getElementById("searchForm").submit();
确保脚本在加载
iframe
后运行。您的
iframe
标记有一个
onload
事件,您可以使用该事件来确定何时加载框架内的页面

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

您是否能够从服务器代码访问web服务


如果是这样,我会取消iframe并在您的服务器上创建一个代理。这将使您的HTML对您的目标读者保持干净和轻量级。

请注意,如果您的iframe的源代码不是来自您的服务器,则无法使用javascript从包含iframe的页面访问其内容。如果您可以访问来自另一台服务器的iframe内容,则可以通过以下方式访问父页面中的所有数据:

window.top

如果您无法访问iframe的页面,那么您将无能为力。

谢谢,我如何确保框架已加载?是否触发了某种类型的事件?您可以向iframe的onload属性添加一个函数引用:如果您在跨域进行操作,您将遇到问题,这是需要注意的一件事。否则,这绝对是一个可行的解决方案。绝对正确,斯托博尔。我继续更新了代码——我本能地以谷歌为例——不应该:)感谢更新的代码示例,非常干净。我实际上在做跨域的事情,所以看起来我需要一点代理。这似乎是个好主意,我正在使用php,有没有简单代理的代码或链接?对不起,汤姆,我自己也是一个ASP.NET人。如果我遇到任何例子,我会发布它们。