猿问

如何使用document.getElementById在iframe中选择元素

如何使用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”。我尝试了几种方法,但我找不到解决方案。


大话西游666
浏览 2926回答 3
3回答

桃花长相依

document.getElementById('myframe1').contentWindow.document.getElementById('x')contentWindow&nbsp;所有浏览器都支持,包括旧版本的IE。请注意,如果iframe的src是从另一个域,您将无法访问其内容,由于同源策略。

斯蒂芬大帝

使用contentDocument来实现这一目标var&nbsp;iframe&nbsp;=&nbsp;document.getElementById('iframeId');var&nbsp;innerDoc&nbsp;=&nbsp;(iframe.contentDocument)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?&nbsp;iframe.contentDocument&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;iframe.contentWindow.document;var&nbsp;ulObj&nbsp;=&nbsp;innerDoc.getElementById("ID_TO_SEARCH");

精慕HU

(这是添加到所选答案)确保iframe在您之前加载contentWindow.document否则,你的getElementById意志null。PS:无法评论,评论仍然很低,但这是对所选答案的后续跟进,因为我花了一些很好的调试时间试图弄清楚我应该iframe在选择内部iframe元素之前强制加载。
随时随地看视频慕课网APP
我要回答