4

我的主页中嵌套了一个 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');
}

adfoxDocument = adfoxWindow.document;由于安全策略(iframe 和主页来自不同的 url),该脚本在线中断。我的问题是为什么这个错误没有被 catch 块捕获,就好像它没有被放入 try-catch 块一样?谢谢你。

4

2 回答 2

2

发生这种情况是因为它不是一个javascript例外。这是一个浏览器安全功能。发生这种情况是因为您的 iframe 和您的网站没有相同的 URL。

可以在此处找到同源策略的来源。

话虽如此,有办法通过第三方工具或javascript技巧“规避”此政策

这里有几个选项”

易XDM

规避同源策略的方法

我希望这会有所帮助

于 2012-08-21T12:48:22.950 回答
0

这在我的测试中不会发生。在 IE、FF、Chrome 和 Safari 上进行测试。该错误不在您在问题中发布的代码中。

http://jsfiddle.net/hg2cs/1/

于 2012-08-21T13:01:04.150 回答