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

标签 javascript iframe cross-domain postmessage

我想从 iFrame 中读取 window.top.location.origin
父级和 iFrame 位于不同的 HTTPS 域中。
例如,尝试访问会在 Chrome 中引发安全错误。
[DOMException:阻止来源为“...”的框架访问跨域框架。]

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

我需要 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);
}

当然,这要归功于 anchor 标签的内置解析。隐藏的 gem ~!

关于javascript - 获取跨域 HTTPS iFrame 的父文档来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26183875/

相关文章:

javascript - ES6 计算属性和嵌套模板文字

iframe - 如何将Google Analytics(分析)Cookie从iframe中包含的页面传递到其他域的页面

javascript - 访问 IFrame

javascript - 如何调试 Chrome 中的 Canvas 跨域问题?

javascript - 如何从本地存储追加后显示的html中获取div数据?

javascript - css 样式在 h :over 后没有退回

javascript - Nodejs Express Mongoose 连接到数据库错误

在 iframe 中启动网站时的 JavaScript 问题

jsp - 从 iFrame 内传播时,HttpServletRequest 属性丢失

javascript - 对象标签中的跨域 SVG 内容文档