2013-05-10 18 views
0

所以我有一个有iFrame的HTML。如何将元素添加到父窗口? - Chrome的具体(所有其他浏览器的工作)

<iframe src="frame.html" width="2000" height="1000"></iframe> 

现在,从JS的iFrame内我打电话jQuery的追加功能的DIV添加到父窗口...

$("body", window.parent.document).append("<div id=\"test\" ></div>"); 

该代码Firefox和IE下工作完全正常,但由于某种原因,它不适用于Chrome浏览器,并且我试图用Google搜索Google的原因,但几乎没有运气。

只是FYI,这一切都是在jQuery 2.0.0下完成的。

+0

适用于我(在Chrome 26.0.1410.63中):http://jsbin.com/ikumex/1/edit(iframe源代码:http://jsbin.com/ovasez/1/edit)。 (我将iframe的大小减小了10倍,但这只是为了更容易看到;它在我做之前就工作了。) – 2013-05-10 21:54:06

+0

它可能是一个交叉来源问题。我目前正在自己​​的计算机上开发,因此我通过提供路径来访问每个iframe。我认为通过将代码生活将解决这个问题,但我不知道。 – Charles 2013-05-10 22:10:24

+0

@ T.J。 Crowder好了,所以我刚刚下载了你的代码,然后在我自己的Chrome中运行,然后“Testing”将在iframe窗口本身中显示“”,而不是它的父窗口。 – Charles 2013-05-10 22:26:26

回答

1

我目前正在自己​​的计算机上开发,因此我通过提供路径来访问每个iframe。

这就是问题所在。使用本地网络服务器并通过http://(或https://)URL进行测试。如果您稍后通过file://网址测试您打算用作网页的内容,则会导致误导。

在这种情况下,您的评论中的怀疑是正确的:这是Same Origin Policy。不同的浏览器以不同的方式处理原产地null(本地文件系统)。当您的窗口从本地文件加载时,Chrome禁止访问其他窗口。

相关问题