有没有办法从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..>
”文字。
感谢。
答案 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();