【问题标题】:Accessing external iframe content访问外部 iframe 内容
【发布时间】:2011-05-18 19:03:45
【问题描述】:

我有一个带有 iframe A 的页面,其 src 属性是一个 url,它本身包含一个 iframe B A。我想访问这个嵌入式 iframe B 的 src。这可能吗?由于嵌入的 iframe B 来自我的 iframe A 的域之外,因此浏览器安全似乎不会让这种情况发生。

【问题讨论】:

  • “src”、src 属性或 HTML 源代码是什么意思?
  • 您是否拥有其他框架中内容的代码?
  • 不,我不拥有其他框架的代码。
  • 我尝试将远程页面加载到隐藏的 iframe 中。从那里,我尝试使用 jquery 来提取隐藏 iframe 的 src。但是,我无法检索嵌入式 iframe 的 src。我希望这很清楚,如果不是,也许这更清楚:在加载远程页面之前,我的页面有这个 iframe 。加载 somepage.php 后,我有这个:。我想提取“another_page.php”并将其加载为 的来源

标签: javascript jquery html iframe


【解决方案1】:

你是对的;这是完全不可能的。

否则,我可以编写一个页面,在隐藏的<iframe> 中加载 Gmail 并阅读您的电子邮件。

【讨论】:

  • 我喜欢你的回答。简单和描述性。这让我想到:如果您不将 cookie 传递到加载的页面,您将不会被记录(到 Gmail 或其他)。那么,是否有任何方法可以将外部页面“安全加载”到 iframe(没有 cookie)中,这样您就可以通过 JavaScript 访问其内容而不会冒冒充的风险?
  • @FerranMaylinch:不,因为 cookie 不是唯一的风险。那些按 IP 地址列入白名单的企业内部应用程序呢? (这是一个坏主意,但这不是重点。)
  • AFAIK 如果第三方页面不允许访问,我将无法通过 CORS 访问它们。
  • 正确;这就是为什么它不会破坏网络的安全性。
【解决方案2】:

是的,浏览器安全性会阻止您

但还有其他获取跨域内容的方法 你可以使用http://developer.yahoo.com/yql/

如果那是你的杯子,有一些 jquery 插件

【讨论】:

    【解决方案3】:

    HTML5 实际上为此提供了一个安全模型。在 HTML5 兼容的浏览器中查看 PostMessage。这里有一个演示:http://html5demos.com/postmessage2

    如果没有,jQuery 有一个不错的插件支持这一点,如果在不正确支持 PostMessage 的浏览器中运行,甚至可以回退到使用锚标记进行通信:http://benalman.com/projects/jquery-postmessage-plugin/

    祝你好运!

    :)

    【讨论】:

      【解决方案4】:

      你不能因为你猜到的原因。但是,如果您可以控制其他域框架的内容,则可以通过多种方式添加跨域框架通信。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-04
        • 2016-05-03
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多