从iframe访问和更改父页面(使用jquery)

时间:2012-05-25 04:24:28

标签: javascript jquery html iframe

有没有办法从iframe访问parrent页面(并更改parrent页面)?

<body>
   <iframe src="frame1.html" name="frame1" height="100%"></iframe>
   <div id="test1"></div>
</body>

在frame1.html中为<a href=..>,我想在点击<h1>clicked</h1>时向<div id="test1"></div>添加“<a href..>”文字。

感谢。

3 个答案:

答案 0 :(得分:20)

如果您的子页面(frame1.html)与父页面位于同一个域,您可以在子窗口中编写如下代码:

 $('#test1', parent.document).html('<h1>clicked</h1>');

第二个参数提供context,用于搜索第一个参数匹配的元素。文件在这里:http://api.jquery.com/jQuery/#jQuery-selector-context

 jQuery( selector [, context ] )

所以,你的代码(frame1.html)可能是这样的:

 <a href="..." 
  onclick="$('#test1', parent.document).html('<h1>clicked</h1>');">click me</a>

希望这有帮助。

答案 1 :(得分:8)

重要说明:只有父级和iframe来自同一个域,才可以访问iframe和iframe,否则由于同源政策

请注意,这两个部分都有自己的文档。使用

访问iframe中的父对象很简单
parent.document

来自父母,它是以下之一:

window.frames['iframeName']

(window.frames.length /*gives you the number of iframes in your document*/ )

或用id引用它并执行以下操作(注意支持!)

var iframe = document.getElementById('iframe');
var doc = iframe.contentDocument? iframe.contentDocument:iframe.contentWindow.document;

答案 2 :(得分:2)

以下代码应该可以正常使用:

$(parent.document).find("#selector");

选择器来自父文档以执行某些操作。例如:

$(parent.document).find("#selector").remove();