使用JavaScript显示鼠标的x和y位置
Show mouse x and y position with JavaScript
第一个版本没有显示x和y,并得到以下错误:
未捕获的类型错误:无法读取未定义的属性"pageX"
第二个版本可以工作,但编码非常相似,找不到问题。
第一个版本(不工作)
<form name ="show">
<input type="text" name="mouseXField" value="0" size="6">Mouse X Position<br>
<input type="text" name="mouseYField" value="0" size="6">Mouse Y Position<br>
</form>
<script type="text/javascript">
var mie = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
if (!mie) {
document.captureEvents(Event.MOUSEMOVE);
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousemove = mousePos();
document.onmousedown = mouseClicked();
var mouseClick;
var keyClicked;
var mouseX = 0;
var mouseY = 0;
function mousePos (e) {
if (!mie) {
mouseX = e.pageX;
mouseY = e.pageY;
}
else
mouseX = event.clientX + document.body.scrollLeft;
mouseY = event.clientX + document.body.scrollTop;
document.show.mouseXField.value = mouseX;
document.show.mouseYField.value = mouseY;
return true;
}
</script>
第二个版本(工作)
<form name="Show">
<input type="text" name="MouseX" value="0" size="4"> X<br>
<input type="text" name="MouseY" value="0" size="4"> Y<br>
</form>
<script type="text/javascript">
var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0
var tempY = 0
function getMouseXY(e) {
if (IE) {
tempX = event.clientX + document.body.scrollLeft
tempY = event.clientY + document.body.scrollTop
}
else
{
tempX = e.pageX
tempY = e.pageY
}
document.Show.MouseX.value = tempX
document.Show.MouseY.value = tempY
return true
}
</script>
乍一看:clientX
应该是clientY
,并且在else
:中缺少{}
else {
mouseX = event.clientX + document.body.scrollLeft;
mouseY = event.clientY + document.body.scrollTop;
}
您还需要将事件发送到功能
document.onmousemove = function (e) {mousePos(e);};
...
function mousePos (e) {
...
看看这个:http://jsfiddle.net/NLsdZ/1/
此外,不赞成使用captureEvents
,应该使用addEventListener
。更多信息请点击此处:http://forums.asp.net/t/1576872.aspx
我也注意到你没有在下面加载,或者至少声明你是。
var mie = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
if (!mie) {
document.captureEvents(Event.MOUSEMOVE);
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousemove = mousePos();
document.onmousedown = mouseClicked();
应该像/或最终为我工作作为:
window.onload = function () {
mie = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
if (!mie) {
document.captureEvents(Event.MOUSEMOVE);
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousemove = function (e) {mousePos(e);};
document.onmousedown = function (e) {mouseClicked();};
};
相关文章:
- Javascript-在视频中跟踪鼠标位置
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 如何在javascript清单中获取地理位置权限
- 使用Google Maps JavaScript API v3和Geocoding API映射多个位置
- javascript背景图像位置循环
- 将位置变量从Javascript传递到PHP函数
- 单击下拉列表时保持滚动位置(javascript)
- 书签窗口位置javascript
- 将HTML元素的位置更改为另一个位置javascript
- 回调地狱,地理位置-JavaScript
- 我的地理位置(javascript)不起作用,我不知道为什么
- 如何使用HTML5地理位置javascript初始化带有地理位置(用户的当前位置)的Google Maps API
- 如何根据角度确定绝对顶部和左侧位置?Javascript
- 数据GUI -菜单的大小和位置(javascript / css)
- 卡号正则表达式和插入符号/光标位置(javascript)
- 计算选定文本的位置javascript/JQuery
- 文档引用器位置javascript远程php服务器
- 输入字段中的回车位置(JavaScript)
- 将地理位置JavaScript值传递给Bean
- 窗口.位置| javascript重定向