让我解释一下这个目的。我正在使用一些CMS,我正在尝试用我自己的php脚本自定义它,我用IFRAME嵌入到主页。我的php脚本返回了一些我想在IFRAME之外打开的链接 - 作为主页上其他CMS块的一部分。我的想法是(从我的PHP脚本)定位已经显示一些数据的CMS块的div。这可能吗?
答案 0 :(得分:1)
var iframe = document.getElementById('idOfIframe');
var frame = iframe.contentDocument || iframe.contentWindow.document;
var yourDiv= frame.getElementById('div_you_want');
答案 1 :(得分:1)
如果您需要从其子<div>
parent window
或iframe
的任何其他元素
使用:
var elem=window.parent.document.getElementById('target');
在<script>
文档的iframe
标记内。
离。
file:index.html(提供任何名称)。
<html>
<body>
<div id="div_to_use_from_parent">Blah!</div>
<iframe src="xyz.php" width="xx" height="xx"></iframe>
</body>
</html>
file:xyz.php(与iframe的src相同)
<?php
echo<<<html
<html>
<head>
<script type="text/javascript">
function do_blah(){
var elem=window.parent.document.getElementById('div_to_use_from_parent');
elem.innerHTML="iframe changed My Content!";
}
</script>
</head>
<body onLoad="do_blah();">
This is iframe
</body>
</html>
html;
?>
OR
如果您需要从iframe
parent window
中的元素
使用:
var iframe = document.getElementById('idOfIframe');
var frame = iframe.contentDocument || iframe.contentWindow.document;
var yourDiv= frame.getElementById('div_you_want');
在<script>
文档的parent window
标记内。
离。
file:index.html(提供任何名称)。
<html>
<head>
<script type="text/javascript">
window.onload=function(){
var iframe = document.getElementById('idOfIframe');
var frame = iframe.contentDocument || iframe.contentWindow.document;
var elem= frame.getElementById('div_from_iframe');
elem.innerHTML+="<br /> And Parent window added this!";
};
</script>
</head>
<body>
<div id="div_to_use_from_parent">Blah!</div>
<iframe src="xyz.php" width="xx" height="xx"></iframe>
</body>
</html>
file:xyz.php(与iframe的src相同)
<?php
echo<<<html
<html>
<body>
<div id="div_from_iframe"> This div from iframe</div>
</body>
</html>
html;
?>
parent window
是原始html
(index.html)文档以及iframe
(xyz.php)所在的文档。
希望它有所帮助: - )!
答案 2 :(得分:1)
在<iframe>
内部运行的页面中,您可以将父页面称为window.parent
,并按照惯例执行操作。
parent.document.getElementById('target_div').innerHTML = 'New content.';
注意JavaScript的跨域限制适用。如果两个页面属于同一个域,则只能这样做。
如果是链接,您可以在<a>
标记中加入属性target="_parent"
,或将其设置为适用于所有链接的基本目标。
<head>
...
<base target="_parent">
</head>
您还可以定位指向其他iframe
的链接,您只需为其设置name="iframe_name"
并将target="iframe_name"
设置为应在该区域中打开的所有链接。< / p>