检查窗口父级是否是同一个域

时间:2013-10-24 12:19:47

标签: javascript jquery iframe cross-domain

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

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

想做这样的事情:

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

2 个答案:

答案 0 :(得分:16)

您可以使用:

try{
    parent.document;
    // accessible
}catch(e){
    // not accessible
}

答案 1 :(得分:0)

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

所以我又迈出了一步:

try{
    var doc = parent.document;
    if(!doc)
        throw new Error('Unaccessible');
    // accessible
}catch(e){
    // not accessible
}