我遇到了与以下代码相关的问题
这是我的主页:
<html>
<body>
<div class="pagewrapper">
<div class="page">
<iframe id="TabContentIframe"
src="/MyTestWebsite4/TabContent/Details/8">
</iframe>
<iframe id="TabContentIframe"
src="/MyTestWebsite4/TabContent/Details/8">
</iframe>
<iframe id="TabContentIframe"
src="/MyTestWebsite4/TabContent/Details/8">
</iframe>
</div>
</div>
</body>
</html>
TabContentIframe看起来像这样:
<html>
<body>
<div class="pagewrapper">
<div class="DivIWant">
<iframe id="MainContentIframe"
src="/MyTestWebsite4/MainContent/Details/8">
</iframe>
</div>
</div>
</body>
</html>
和maincontentframe看起来像这样:
<html>
<body>
<div class="pagewrapper">
<div iD = "BtnIPressed"></div>
</div>
</body>
</html>
正如你所看到的,它们都在同一个域中。
如果我按下BtnIPressed
,我怎么能得到最接近iframe内我按下按钮的DivIWant
?
原来的答案是:
alert(parent.parent.getElementById("DivIWant").innerHTML)
但是现在你改变了div的位置,所以它只在上一级。
alert(parent.getElementById("DivIWant").innerHTML)
遍历父元素,直到找到匹配的div
var par = null;
var div = null;
while(par!==window){
par = par.parent;
var div = par.getElementById("DivIWant")
if(div){
break;
}
}
if(div){
alert(div.innerHTML);
}
试试这个
window.top.document.getElementById("DivIWant");