alert(document.getElementById('external-site').contentWindow.location.href);
大家好,此代码在Chrome中运行并显示“未定义”,但在Mozilla Firefox中显示错误。
错误:访问属性“href”的权限被拒绝
alert(document.getElementById('external-site').contentWindow.location.href);
大家好,此代码在Chrome中运行并显示“未定义”,但在Mozilla Firefox中显示错误。
错误:访问属性“href”的权限被拒绝
如果document.getElementById('external-site')
指的是从不同域加载页面的 iframe,则 firefox 会遇到same-origin policy
错误并且您无法访问window.location
对象
来自MDN:
同源策略防止从一个源加载的文档或脚本从另一个源获取或设置文档的属性。该政策可以追溯到 Netscape Navigator 2.0。
既然你想要做的就是“检查”它是否是外部的,为什么不捕捉错误呢?似乎在 FF 和 Chrome 中工作。请参阅jsFiddle。
try {
alert(document.getElementById('external-site').contentWindow.location.href);
}
catch (err) {
alert("undefined");
}
我也遇到了同样的错误。
为了克服这个错误,我使用了以下代码行:
alert(document.getElementById('external-site').contentWindow.document.location.href);