我遇到一个问题,就是我的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>是干什么用的。
比如:
<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>是干什么用的。
<!Doctype html>是声明文档类型为HTML5类型,它强制要求了浏览器按某种规则去解析网页,所以能一定程度上解决兼容性问题,你之所以加了之后会变小,是因为你没加的时候那个按钮是按IE的规则解析的,加了之后就是按标准解析的,建议你还是按标准来解析,这样会少遇到很多麻烦
至于event失效,可能是兼容性问题,你把function m(event){改成这样:
function m(e){
var evt=e || event;后面统一用evt就不会有问题了
在chrome下事件没有响应,但是IE7 响应了。
下面的链接 是这样解释的。我也不知道对不对,貌似是对。http://www.alixixi.com/ePrint.asp?from=dev&id=64026问题找了很久,都不知道是什么地方的问题。后来才发现是DW生成的代码第一句
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
使得这个鼠标事件不运行。,原来这里声明了后面的鼠标事件必须遵循这个DTD文档 的规则。
而不事件中的一些定义没有遵循,所以这个鼠标事件即不触发,也不报错。
所以平时用的三个规范中,如果没有特殊要求,首先应该摒弃<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
这个框架规范,因为页面内不宜框架太多,这样页面间的交互很不好实现;
然后是标准严格的规范<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
用了这个导致你不能使用任何表现层的标识和属性;
所以在没有特殊要求的情况下,应该用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这个过渡规范,然后规范确定了,慢慢的调其余的功能和样式