如何查找IFRAME在父页面DOM中的位置

ma2jiajia 2010-10-17 08:07:21
如下代码,IFRAME中调用父页面的方法,我想在这方法中获取该IFRAME在父页面DOM中的位置
如下,我想通过IFRAME访问到它的兄弟元素ID为info的DIV,因为IFRAME是动态创建的,不想添加ID属性,最好就是能通过IFRAME传个对象过来,然后通过此对象访问到它的兄弟元素

P.S.动态创建的时候添加NAME属性,然后IFRAME中传递INDEX(动态创建的时候传递document.getElementsByName("xxx").length),这种方法虽然可以,但也不想添加NAME属性...

父页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Parent</title>
<script type="text/javascript" language="javascript">
// <![CDATA[
function fn(obj) {
var info = document.getElementById("info");
info.innerHTML = "iFrame调用父页面的方法";
obj.parentNode.childNodes[1].innerHTML += "fn()"; //错误,obj.parentNode.childNodes为空或不是对象
};
// ]]>
</script>
</head>
<body>
<div style="width:400px; height:400px; background-color:#acd;">
<iframe src="child.htm" scrolling="no" frameborder="0" style="width:100%; height:50%; border:2px solid #000;"></iframe>
<div id="info" style="width:100%; height:50%;">here</div>
</div>
</body>
</html>

子页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Child</title>
</head>
<body>
<button onclick="window.parent.fn(window)">Click</button>
</body>
</html>
...全文
193 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ma2jiajia 2010-10-17
  • 打赏
  • 举报
回复
忘了...
除了IE外的浏览器,会把缩近的HTML当成下一个兄弟元素
obj.frameElement.nextSibling获取到的是#text元素...所以不报错,但却没反应...

十分感谢!!!
ma2jiajia 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sohighthesky 的回复:]
试试

JScript code
obj.frameElement.nextSibling.innerHTML+="fn()";
[/Quote]
貌似只有IE有效??
测试了
FF 3.6、chrome 5、opera 10、safari 5
都没反应,但也没报错...
sohighthesky 2010-10-17
  • 打赏
  • 举报
回复
试试
obj.frameElement.nextSibling.innerHTML+="fn()";

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧