如何使用document.getElementById在iframe中选择元素我iframe喜欢这个<iframe name="myframe1" id="myframe1" width="100%" height="100%" src="a.html"><html>
<head></head>
<frameset name="myframe2" cols="0%, 100%" border="0" frameBorder="0" frameSpacing="0">
<frame name="page1" src="c.html" scrolling="no"></frame>
<frame name="page2" src="d.html" >
<html>
<head></head>
<body id="top">
<div id="div1">
<div id="div2">
<div id="div3">
<ul id="x">
<li>a</li>
<li>b</li>
</ul>
</div>
</div>
</div>
</body>
</html>
</frame>
</frameset></html></iframe>我想引用元素“x”。我尝试了几种方法,但我找不到解决方案。
3 回答

桃花长相依
TA贡献1860条经验 获得超8个赞
document.getElementById('myframe1').contentWindow.document.getElementById('x')
contentWindow
所有浏览器都支持,包括旧版本的IE。
请注意,如果iframe
的src
是从另一个域,您将无法访问其内容,由于同源策略。

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
使用contentDocument
来实现这一目标
var iframe = document.getElementById('iframeId');var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;var ulObj = innerDoc.getElementById("ID_TO_SEARCH");

精慕HU
TA贡献1845条经验 获得超8个赞
(这是添加到所选答案)
确保iframe
在您之前加载
contentWindow.document
否则,你的getElementById
意志null
。
PS:无法评论,评论仍然很低,但这是对所选答案的后续跟进,因为我花了一些很好的调试时间试图弄清楚我应该iframe
在选择内部iframe元素之前强制加载。
添加回答
举报
0/150
提交
取消