通过jquery / javascript访问iframe元素

时间:2013-12-07 10:44:23

标签: javascript jquery html iframe

好的,我需要做的是相当简单:

  • 我在iFrame中运行了一个网页(在同一个文件夹中,在本地 - 它不会从服务器运行,这就是它的全部内容)。
  • 我想从初始页面通过javascript访问其元素。
  • 尝试$('iframe').contents()之类的内容时,通过Chrome javascript控制台,我收到有关同源的警告等。

有什么想法吗?应该真的很容易......


P.S。我对不包含iframe的解决方法不感兴趣 - iframe ...

1 个答案:

答案 0 :(得分:2)

(1)

这是因为您在iframe中加载的网站与托管iframe的网站位于不同的域中。

请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript

因此,相同的原始政策将禁止Javascript访问/操纵iframe内的页面。

(2)

还有一个使用HTML5进行沙盒的概念,此属性可以对内嵌框架中显示的内容进行额外限制。标记是:allow-same-origin,allow-scripts等。

更多信息:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe

请检查您的iframe是否为沙盒?

(3)

然后,有X-Frame-Options HTTP响应标头,可用于指示是否应允许浏览器在iframe中呈现页面。站点可以通过确保其内容未嵌入到其他站点中来避免点击劫持攻击。它看起来像这样:

<meta http-equiv="X-FRAME-Options" content="SAMEORIGIN">

此处的令牌可以是:deny,sameorigin或allow-from。

更多信息:https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options

并且:http://tools.ietf.org/html/rfc7034

请检查您的网页是否有此标题?

(最后):

如果以上所有内容都不适用于您的方案,那么事情就应该有效。请发布更多信息,例如标记和您的javascript。