<!DOCTYPE html>与onmousedown发生冲突是event不生效,为什么会这样?要怎么修改?

在body标签中使用了onmousedown用来监听鼠标事件,但是事件完全不生效。百度后都说是 <!DOCTYPE html>使event不生效。有说因为宽度问题,但是都试过还没作用。如果去掉 <!DOCTYPE html>就可以生效使用

代码如下:

<!DOCTYPE html>
<html>
  <head>
    <title>objecjs20.html</title>
    <script language="javascript" type="text/javascript">
    <!--
        function show_coords(e){
        x=e.clientX;
        y=e.clientY;
        alert(e+"--X 坐标:"+x+",Y 坐标:"+y);
        }
    //-->
    </script>
  </head>
  <body onmousedown="show_coords(e)">
  <div height="100%" width="100%">fdjl</div>
  </body>
</html>
阅读 2k
2 个回答

1、文档模式
没有文档模式时,是处于混杂模式下,html 和 body 会充满全屏。
<!DOCTYPE html> 会开启标准模式,标准模式下默认 html 和 body 没有高度。
这时可以这样设置。

html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}

2、传入事件
如果是在 html 标签中,想传入事件,应该用 event 而不是 e 。

<body onmousedown="show_coords(event)">

判断一下是否有,

function show_coords(e){
var _event = e || event
......
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题