1

html是这样的

<iframe id="MainFrame">
  <div id="Maintest">This is main text
        <div id ="SecondTest">This is second layer 
            <div id="ThirdTest">This is third layer</div>
        </div> 
  </div>
</iframe>

访问框架中元素的javascript是这样的

var iframe = document.getElementById('MainFrame');
    var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
    console.log(iframe);
    var mydiv = innerDoc.getElementById("Maintest");
    console.log(mydiv);
    var seconddiv = innerDoc.getElementById("SecondTest");
    var thirddiv = innerDoc.getElementById("ThirdTest");
    console.log(seconddiv+thirddiv);

mydiv、seconddiv 和thirddiv 给null。我在很多帖子上看到这是访问iframe 元素的方式。我不知道为什么它给null。感谢帮助。

谢谢斯瓦拉吉

4

1 回答 1

1

我相信您使用 iframe 的实现是不正确的。标记中的任何内容<iframe>都会在不支持 iframe 的浏览器中显示。我知道只有两种方法可以将内容插入 iframe:

<iframe src="/example/content.html">Your browser doesn't support iframes.</iframe>

并使用 javascript 使用您的 innerDoc 引用将子节点附加到 iframe,例如:

innerDoc.body.appendChild(child_ref);

更新:

为了清楚起见,您要在 iframe 中引用的 html 内容需要位于单独的文件中,例如my_content.htmliframe 需要在“src=”字段中引用该文件,例如:<iframe src="my_content.html">

于 2013-10-16T18:13:38.943 回答