错误:无法访问属性 href [重复]

Posted

技术标签:

【中文标题】错误:无法访问属性 href [重复]【英文标题】:Error: Can't access property href [duplicate] 【发布时间】:2013-03-20 04:04:33 【问题描述】:

我正在使用 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;

【问题讨论】:

看这里***.com/questions/6690598/… 看来这也可能是由于打开了 Firebug:***.com/a/2910650/376789 是的,我正在使用 iframe @jmar777:这个答案来自 2010 年……我个人从未见过在打开 Firebug 时发生过这样的事情。很确定这只是旧的 SOP…… 【参考方案1】:

如果您尝试在 iframe 中访问的 URL 位于当前页面域之外,那么您将无法访问。现代浏览器实现了Same Origin Policy,它决定了运行跨站点脚本时 JavaScript 的权限。

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

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

来源:

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

【讨论】:

这适用于即使您在同一台服务器上但您的父级使用localhost/app1 而您的 iframe 使用servername/app2(这在调试时让我感到困惑)

以上是关于错误:无法访问属性 href [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法在事件处理程序中访问 React 实例(this)[重复]

无法访问 UITableViewCell 中 UIView 的图层属性 [重复]

无法访问已关闭的 Stream。抛出错误[重复]

“错误C2248:'CObject :: CObject':无法访问在类'CObject'中声明的私有成员[重复]

错误:无法在字段初始化程序中访问“this”以读取“_endeks”[重复]

嵌入表单集合错误:无法确定属性的访问类型