我的iframe嵌套在主页面中。 iframe包含以下脚本:
var adfoxPlaceholderId = 'placeholder';
var adfoxWindow = window;
var adfoxDocument = window.document;
var adfoxPlaceholder = adfoxDocument.getElementById(adfoxPlaceholderId);
try {
while((adfoxPlaceholder == null) && (adfoxWindow != window.top)) {
adfoxWindow = adfoxWindow.parent;
adfoxDocument = adfoxWindow.document;
adfoxPlaceholder = adfoxDocument.getElementById(adfoxPlaceholderId);
}
} catch(ex) {
console.log('catch-block');
}
由于安全策略(iframe和主页来自不同的URL),脚本在adfoxDocument = adfoxWindow.document;
行上断开。
我的问题是为什么catch块没有抓住这个错误,好像它没有被放入try-catch块?谢谢。
答案 0 :(得分:2)
这种情况正在发生,因为它不是javascript
例外。这是一个浏览器安全功能。发生这种情况是因为您的iframe和您的网站没有相同的网址。
可以找到同源政策的来源here。
话虽如此,有办法通过第三方工具或javascript
技巧“规避”这项政策
这里有几个选项“
ways-to-circumvent-the-same-origin-policy
我希望有帮助
答案 1 :(得分:0)
在我的测试中不会发生这种情况。在IE,FF,Chrome和Safari上进行测试。错误不在您在问题中发布的代码中。