获取跨域HTTPS iFrame的父文档来源



我想从iFrame内部读取window.top.location.origin
父级和iFrame位于不同的HTTPS域上
例如,试图访问会在Chrome中引发安全错误
[DOMException: Blocked a frame with origin "..." from accessing a cross-origin frame.]

有没有可能在不触发错误的情况下做到这一点?

我需要window.top的来源,因为我基于该来源发送不同的postMessages。

我知道这是旧的,但也许它能帮助其他人:

完整的父URL将在<iframe/>中显示为document.referrer。这样,您就可以在本地解析它,以找到您可能需要的URL细节。

if (document.referrer !== location.href) {
  let foo = document.createElement('a');
  foo.href = document.referrer;
  console.log('origin is:', foo.origin);
}

当然,这要归功于锚标记的内置解析。隐藏的宝石~!

由于同源策略,来自不同源的iframe中的JavaScript将无法与其父框架通信。如果你有权访问为iframe服务的服务器,你可以启用CORS,否则我认为你运气不好

相关内容

  • 没有找到相关文章

最新更新