我想要设计登录页面,但代码不起作用 这段代码有问题。
<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>
感谢
答案 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