IE中的getElementById.contentDocument错误

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)
<html>
   <script type="text/javascript">
      function func() {
         alert(document.getElementById('iView').contentDocument);
      }    
   </script>
   <body>
      <iframe id="iView" style="width:200px;height:200px;"></iframe>
      <a href="#" onclick="func();">click</a>
   </body>
</html>

点击后,Firefox返回[object HTMLDocument]。Internet Explorer返回未定义。

如何使用Internet Explorer选择iView元素?谢谢。

提问于
用户回答回答于

从此

Mozilla支持通过IFrameElm.contentDocument访问iframe文档对象的W3C标准,而Internet Explorer要求您通过document.frames [“name”]访问它,然后访问生成的文档。

所以你需要检测浏览器,并在IE上做这样的事情:

document.frames['iView'].document; 
用户回答回答于

相当于跨浏览器contentDocument(包括Firefox本身,contentDocument 的工作)是contentWindow.document

所以试试:

alert(document.getElementById('iView').contentWindow.document);

contentWindow让你获得对iframe window对象的引用,当然.document这只是iframe的DOM Document对象。

扫码关注云+社区