iframe将数据发送到文本框并单击按钮

时间:2014-05-03 18:33:32

标签: javascript jquery html iframe login

我想要设计登录页面,但代码不起作用 这段代码有问题。

<form method="post">
<p>
<iframe src="exampel.com" id="frame1" scrolling="yes" width="500" frameborder="0"></iframe>
<input name="b1" id="b1" onclick="return TextToFrame();" type="button" value="send to iframe" />

 <script type="text/javascript">
 function TextToFrame()
 {   
   var x = document.getElementById("frame1");
   x.contentDocument.getElementById("txtUsername").value = "897818930000";
   x.contentDocument.getElementsByid("btnLogin")[0].click();
   return;
 }
</script>
</p>
</form>

感谢

3 个答案:

答案 0 :(得分:0)

您有一个iFrame,它显示的网址内容与iFrame所在文档的来源不同。现在,当您尝试访问该iFrame的DOM树时,这违反了浏览器的相同原始策略:http://en.wikipedia.org/wiki/Same-origin_policy。有几种缓解机制。最好的方法是将iFrame内容托管在原点上。

答案 1 :(得分:0)

为什么要从iframe获取登录表单?
如果您这样做是为了获得交互式登录表单,我建议您使用它:

<form action="login.php" method="post" target="login-target" id = "loginform">
//inputs and sumbit button here
</form>
<iframe id="login-target" name="login-target" ></iframe>

这样您的表单将使用iframe提交而不刷新,您可以从iframe usig jquery或javascript中获取结果

答案 2 :(得分:0)

由于源策略相同,您只能在同一域中访问iframe的文档。

您可以设置从中获取iframe的登录页面http://46.4.83.151,以接收用于填充文本框的查询字符串中的其他参数

<iframe src="http://46.4.83.151?txtUsername=897818930000" id="frame1" scrolling="yes" width="500" frameborder="0"></iframe>

同样,您可以定义另一个网址,当请求加载包含按钮onclick作为其onload

的网页时