【问题标题】:Check if window parent is same domain检查窗口父级是否是同一个域
【发布时间】:2013-11-03 03:37:45
【问题描述】:

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

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

想做这样的事情:

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

【问题讨论】:

  • 在JS中搜索一下跨域策略...
  • 找不到任何相关内容,这就是我在这里发布的原因...
  • 我第一次搜索的第一个结果:stackoverflow,结果将建立在this site

标签: javascript jquery iframe cross-domain


【解决方案1】:

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

所以我又迈出了一步:

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

【讨论】:

    【解决方案2】:

    你可以使用:

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

    【讨论】:

    • 这似乎有效,与 JoDev 在链接中建议的“相同”。
    猜你喜欢
    • 2012-05-01
    • 2011-06-03
    • 2015-10-17
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多