错误:无法访问属性href

时间:2013-03-29 12:44:13

标签: javascript html html5 node.js web

我正在使用NODE JS模块,我正在创建一个HTTP服务器。服务器的响应是一个包含JavaScript的页面,它嵌入了一个网页。 这是响应代码:

<html>
<head>
<script type='text/javascript'>
function test() {
document.body.innerHTML='<iframe id="ifool" src="URL" sandbox="allow-same-origin allow-forms allow-scripts"> </iframe>';
var c;                 
window.setInterval(function(){
c=document.getElementById("ifool").contentWindow.location.href; 
window.history.pushState(0,0,c);  
},100);
</script>
</head>
<body onload= "test()">
</body>
</html>

我正在使用带有FF的Firebug。我遇到以下错误:

 Error: Permission denied to access property 'href'
    c=document.getElementById("ifool").contentWindow.location.href;

1 个答案:

答案 0 :(得分:3)

如果您尝试在iframe中访问的网址超出当前网页域名,那么您将无法执行此操作。现代浏览器实现Same Origin Policy,在运行跨站点脚本时决定JavaScripts的权限。

当父母和孩子来自同一个域时,他们可以互相访问;孩子可以访问和操作父母的属性和方法,反之亦然。但是,当他们不这样做时,尝试这样的访问将触发脚本错误,指示权限被拒绝。

如果我尝试使用指向由节点服务器托管的页面的页面和iframe源运行类似的脚本,则不会出现权限错误。

来源:

  1. http://www.esqsoft.com/javascript_examples/iframe_talks_to_parent/
  2. error : Permission denied to access property 'document'
  3. Access parent URL from iframe
  4. <iframe> javascript access parent DOM across domains?