getElementByID(“”)与在线src iframe

时间:2013-12-21 11:19:44

标签: javascript html iframe

我有这个代码可以正常使用本地文件:

<html> 
<body>
<iframe id="frame1" name="frame1" frameborder=0 src="form.html" width=100% height=70%></iframe>
</body> 
<script type='text/javascript'>
    window.onload= function(){
        var iframe = document.getElementById('frame1');
        var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
        var input = innerDoc.getElementsByName('input1')[0].value;
        alert(input);
    }
</script>
</html>

form.html:

<input name="input1" type="text" value="testing"/>

一切都好,但是当我改变iframe的src时:

<iframe id="frame1" name="frame1" frameborder=0 src="form.html" width=100% height=70%></iframe>

使用:

<iframe id="frame1" name="frame1" frameborder=0 src="http://test.hklearningmap.com/form.html" width=100% height=70%></iframe>

它不起作用。如何在不使用form.html将本地文件上传到同一位置的情况下使其工作?感谢。

2 个答案:

答案 0 :(得分:1)

您正在遇到浏览器强加的Same Origin Policy。在Origin A的窗口中运行的JavaScript代码无法从Origin B访问窗口(框架)中的文档。

有一些例外,例如两个文件都为document.domain分配相同的值时。但是可以设置的值有限制(松散地,你只能设置一个超级域,例如你可以从example.com加载的页面设置www.example.com),当然这两个文件都必须设置它(因为这种合作告诉浏览器可以允许跨源脚本)。

答案 1 :(得分:0)

您无法使用js访问远程html内容,因为您将其加载到iframe中。阅读相同的原产地政策。