DOCTYPE定义引起javascript失效的问题

游客

标题:DOCTYPE定义引起javascript失效的问题
正文:
今天写一个小脚本,后来发现HTML头有&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt; 定义就不能运行。后来找到原因是document.body改为document.documentElement即可。原来HTML里是document.bodyXHTML里是document.documentElement都指的是&lt;body&gt;节点(OR元素)可以这样兼容：function getBodyObj(){return (document.documentElement) ? document.documentElement : document.body ;}在DHTML文档中对documentElement的说明是：Object that receives the reference to the document element，The root node of a typical HTML document is the html object.bodyMicrosoft? Internet Explorer 6 的新增内容 当你使用 !DOCTYPE 声明指定标准兼容模式的时候，此对象将不再代表文档内容所渲染的整个表面。该对象当然可从其内容中获得其大小，但你也可以像 div 对象那样精确设置其大小。PS:对于document.compatMode，很多朋友可能都根我一样很少接触，知道他的存在却不清楚他的用途。今天在ext中看到 document.compatMode的使用，感觉这个对于我们开发兼容性的web页面还是很有帮助，我们都知道，IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的，在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样，但在Quirks Mode模式下则有很大差别，而在不声明Doctype的情况下，IE默认又是Quirks Mode。所以为兼容性考虑，我们可能需要获取当前的文档渲染方式。document.comp
[<<][[1]][2][>>]

查看评论(0)
发表评论

首页