javascript:是否可以定位另一个文件的div?

时间:2014-07-19 17:16:46

标签: javascript php

让我解释一下这个目的。我正在使用一些CMS,我正在尝试用我自己的php脚本自定义它,我用IFRAME嵌入到主页。我的php脚本返回了一些我想在IFRAME之外打开的链接 - 作为主页上其他CMS块的一部分。我的想法是(从我的PHP脚本)定位已经显示一些数据的CMS块的div。这可能吗?

3 个答案:

答案 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 windowiframe的任何其他元素

使用:

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>