【问题标题】:Dynamically check if iFrame will break?动态检查 iFrame 是否会损坏?
【发布时间】:2012-05-01 22:02:39
【问题描述】:

简而言之,我正在创建一个网站,用户可以在其中输入 URL 并显示在 iFrame 中。我知道很多网站都有突破 iFrame 的代码(流行的例子,谷歌)。

有没有办法用 JavaScript 或 PHP 来检查给定的 URL 是否会超出 iFrame?

作为旁注,我不介意拍摄网站快照,但我还没有找到现有的适当网站,而且我似乎无法安装 wkhtmltoimage/pdf...但这是一个不同的问题。

【问题讨论】:

  • 我不知道这对你是否有用,可能不会,但 goole 有一个沙箱网站客户端 caja.appspot.com 的项目,你可以看到 iframe 内的任何页面。但这目前非常复杂且处于初期阶段。
  • 这看起来和 PHP 中的file_get_contents() 一样...你知道有什么不同吗?不过我会检查一下,谢谢!
  • 它有效,看起来不错!我正在使用它,如果我找到更好的解决方案,我会在这里发布。 API真的很简单,我推荐这个……我怎么从来没有发现这个?看起来谷歌没有索引自己的网站:)
  • 我一直在尝试 Caja 的 API 并且整个系统似乎无法正常工作,我尝试了 google.com 并且样式表没有加载,图像也没有加载。如果我做错了什么,请告诉我,如果你愿意,我可以发布我的代码。
  • 感谢您的想法...

标签: php javascript iframe break


【解决方案1】:

只要 iframe 的 URL 与父级(您的网站)的 URL 不同,iframe 的 JavaScript 就无法访问其父级中的任何内容。

为了使跨域 iframe 通信正常工作,可以使用 HTML5 的 PostMessage(目前已获得不错的支持)或通过 iframe 的 URL 传递参数。 这两种方法都需要父(您的网站)显式拦截来自 iframe 的“调用”并执行任何操作...

总而言之,出于安全原因,来自未知来源的 iframe 不能简单地更改持有 iframe 的父网站。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-13
    • 2011-04-24
    • 2017-10-26
    • 2021-07-28
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多