通过jquery/javascript访问iframe元素
好的,我需要做的很简单:通过jquery/javascript访问iframe元素,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,好的,我需要做的很简单: 我在iFrame中运行了一个网页(在同一个文件夹中,本地-它永远不会从服务器运行,仅此而已) 我想从初始页面通过javascript访问它的元素 当通过Chrome javascript控制台尝试类似$('iframe').contents()的内容时,我会收到一条关于相同来源的警告,等等 有什么想法吗?这应该很容易 另外,我对不包括iframe的变通方法不感兴趣-它必须是iframe。(1) 这是因为您在iframe中加载的网站与承载iframe本身的网站位于不
- 我在iFrame中运行了一个网页(在同一个文件夹中,本地-它永远不会从服务器运行,仅此而已)
- 我想从初始页面通过javascript访问它的元素
- 当通过Chrome javascript控制台尝试类似
的内容时,我会收到一条关于相同来源的警告,等等$('iframe').contents()
另外,我对不包括
iframe
的变通方法不感兴趣-它必须是iframe
。(1)
这是因为您在iframe中加载的网站与承载iframe本身的网站位于不同的域中
见此:
因此,同源策略将不允许Javascript访问/操作iframe内的页面
(二)
HTML5还有一个沙箱的概念,该属性对内联框架中可能出现的内容启用了额外的限制。标记有:允许相同来源、允许脚本等
更多信息:
请检查您的iframe是否有沙盒
(三)
然后是X-Frame-Options
HTTP响应头,可用于指示是否允许浏览器在iframe中呈现页面。网站可以通过确保其内容不嵌入其他网站,从而避免点击劫持攻击。看起来是这样的:
<meta http-equiv="X-FRAME-Options" content="SAMEORIGIN">
这里的标记可以是:deny、sameorigin或allow from
更多信息:
以及:
请检查您的页面是否有这样的标题
(最后):
如果以上所有内容都不适用于您的场景,那么一切都应该正常工作。请发布更多信息,如标记和您的javascript。@Vegard好吧,您是否尝试过并使其正常工作?在使用
文件时,使用javascript访问iframe
s(或任何其他资源)://
协议非常困难。这是出于安全考虑。最简单的解决方案是运行本地web服务器。每个文件都被视为各自的域。这是行不通的。仅当Op使用文件:
协议时,请参见@MartinHansen和@lonesomeday:。如果使用了http
,那么应该没有问题。好吧,我想你还没有读过我最初的问题。我所拥有的就是两个文件:index.html
和index2.html
位于同一个(本地)文件夹中index2.html
正在iframe内部运行。那么,有什么不同的域名?@Dr.Kameleon:好吧,我误读了,我以为你的网站是本地的。然而,谜团仍然存在:为什么chrome会抱怨试图跨域访问?@Dr.Kameleon:我只是重新检查了一下。它只在我的电脑上工作,这是应该的!什么操作系统/浏览器组合?