6

我的问题是我正在创建一个将添加到 iframe 中不同页面的应用程序。但有时它会在我自己的域上,有时在别人的域上。当它托管在我自己的域上时,我希望能够在框架外调用函数。

是否可以检查父窗口是否在同一个域上(使用 javascript/jQuery)?目前,当我在我自己的网站上未托管时尝试访问框架外的某些内容时遇到了这个丑陋的错误:“错误:访问属性'文档'的权限被拒绝”

想做这样的事情:

if(window.parent is accessible) {
    // Do special stuff
} else {
   // Do nothing
}
4

2 回答 2

18

你可以使用:

try{
    parent.document;
    // accessible
}catch(e){
    // not accessible
}
于 2013-10-24T12:52:22.573 回答
1

我尝试检查父文档,但由于某些原因在新的 iOS 设备(chrome 或 safari)中它没有抛出异常,而是继续下一步。

所以我又迈出了一步:

try{
    var doc = parent.document;
    if(!doc)
        throw new Error('Unaccessible');
    // accessible
}catch(e){
    // not accessible
}
于 2016-11-27T09:26:56.097 回答