日期:2014-05-16  浏览次数:20311 次

<!doctype html>的问题
我遇到一个问题,就是我的html前面如果加上<!doctype html>的话,那么body标签的event都不会有效
比如:
  

  <script type="text/javascript">
    <!--
          function m(event){ 
          x=event.clientX;
          y=event.clientY; 
          alert("X:"+x+",Y:"+y); 
          }
   //-->
    </script>
  </head>
    
<body onMousedown="m(event)">               
</body> 


如果去掉那个的话,就会有event响应了。还有去掉这个之后页面上的<input/>标签里的button都变小了一些。这个是为什么?这个<!doctype html>是干什么用的。

------解决方案--------------------
引用:
我遇到一个问题,就是我的html前面如果加上<!doctype html>的话,那么body标签的event都不会有效
比如:
  XML/HTML code?12345678910111213  <script type="text/javascript">    <!--          function m(event){           x=event.……


<!Doctype html>是声明文档类型为HTML5类型,它强制要求了浏览器按某种规则去解析网页,所以能一定程度上解决兼容性问题,你之所以加了之后会变小,是因为你没加的时候那个按钮是按IE的规则解析的,加了之后就是按标准解析的,建议你还是按标准来解析,这样会少遇到很多麻烦
至于event失效,可能是兼容性问题,你把function m(event){改成这样:
function m(e){
var evt=e 
------解决方案--------------------
 event;

后面统一用evt就不会有问题了
------解决方案--------------------
css1compat下body没有内容时高为0,所以点击时没有点到body对象就没有触发事件,如果body有内容你点击内容就是点击到body了,触发了事件。不过firefox在css1compat下也响应有点怪,不知道是不是bug。。