错误:无法访问属性href

我正在使用NODE JS模块,我正在创build一个HTTP服务器。 服务器的响应是一个包含embedded网页的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; 

如果您尝试在您的iframe中访问的url超出了您当前的网页域名,那么您将无法做到这一点。 现代浏览器实现一个相同的来源政策 ,它决定了运行跨站点脚本时的JavaScript的权限。

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

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

资料来源:

  1. http://www.esqsoft.com/javascript_examples/iframe_talks_to_parent/
  2. 错误:权限被拒绝访问属性“文档”
  3. 从iframe访问父url
  4. <iframe>跨域的JavaScript访问父DOM?