【问题标题】:Get the level/number of iframes获取 iframe 的级别/数量
【发布时间】:2017-12-13 13:23:38
【问题描述】:

我有一个带有 iframe 的网站,一个带有另一个 iframe 的网站,所以它是另一个 iframe 中的一个 iframe(都在不同的域上)。那么有没有办法从父div或父主div(父->子iframe->子iframe)的url获取所有iframe或一些道具的数量。

谢谢

【问题讨论】:

  • 没有。一旦你越过起源,根本不可能

标签: javascript iframe cross-domain


【解决方案1】:

您无法访问不同域上的 iFrame 内容,这是 XSS 保护问题。

【讨论】:

  • 我不认为这是真的了
  • 还是这样,你必须控制iframe域和externak代码才能交换消息,问题提到“父div或父主div的url(parent->child iframe ->子 iframe)"
【解决方案2】:

您可以尝试使用新的 window.postMessage() API - https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

window.postMessage() 方法可以安全地启用跨域通信。通常,当且仅当执行它们的页面位于具有相同协议(通常都是 https)、端口号(443 是 https 的默认值)和主机(模文档)的位置时,不同页面上的脚本才被允许相互访问.domain 被两个页面设置为相同的值)。 window.postMessage() 提供了一种受控机制,以在正确使用时安全的方式规避此限制。

你可以在这里找到一个很好的例子 - Cross-Domain Messaging With postMessage

【讨论】:

  • 只有当 OP 可以访问所有页面时才有效(即如果他们可以插入 postMessage 和 onmessage 脚本)。并且这篇文章将非常适合至少一个伪代码来展示如何实现最终结果。
猜你喜欢
  • 2018-05-08
  • 1970-01-01
  • 2013-04-27
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多