javascript - 错误 : Can't access property href

标签 javascript html 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;

最佳答案

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

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

如果我尝试在我的页面和 iframe 源指向由 Node 服务器托管的页面的情况下运行类似的脚本,我不会收到任何权限错误。

来源:

  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?

关于javascript - 错误 : Can't access property href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15703503/

相关文章:

javascript - .getAttribute 不是函数

javascript - 检查动态路由 express js

javascript - 为什么 Google Analytics 的代码如此复杂?

javascript - 如何使用 jQuery 删除具有两个类名的 li 和 ol

javascript - 如何设置带有单选图标后缀文本的单选按钮列表?

html - 为样式为按钮的链接设置 % 宽度,无论其文本长度如何

windows - 无法在 Windows XP 上使用 npm 安装 CoffeeScript

angularjs - 通过 Node.js 而不是像 Xampp 这样的服务器来运行 AngularJS Web 应用程序的实际优势是什么?

javascript - Dalekjs 从 9006 更改 Firefox 端口

javascript - 悬停元素之前的目标元素(类似 netflix 的悬停效果)