访问和更改父页面从IFRAME(使用jQuery)(access and change parent

2019-07-29 13:05发布

有什么办法如何从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..>被点击。

谢谢。

Answer 1:

如果你的孩子页面(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>

希望这可以帮助。



Answer 2:

重要提示:访问进出I帧才有可能,如果双方,父母和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;


Answer 3:

下面的代码应该很好地工作:

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

该选择是从父文件执行一些动作。 例如:

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


文章来源: access and change parent page from iframe (with jquery)