首页 > 解决方案 > 使用 console.log 时无法读取未定义的属性“clientX”

问题描述

我试图制作一个简单的游戏作弊检测器,我在测试时遇到了这个问题。我的问题是,当我尝试打印坐标时,它给了我这个错误:Uncaught TypeError: Cannot read property 'clientX' of undefined

我认为我的问题是因为循环,它可能真的很简单,但这是我的代码:

var USrPosX
var USrPosY
setInterval(Chk, 1000)
function Chk() {
 USrPosX = event.clientX
 USrPosY = event.clientY
 console.log(USrPosX)
 console.log(USrPosY)
} 

标签: javascriptwebsocket

解决方案


您收到错误的原因是因为您从未指定“事件”。通过查看您要执行的操作,我假设您想要获取鼠标坐标。如果您正在侦听文档上的“mousemove”事件,您将能够访问 clientX 和 clientY 属性:

    var USrPosX;
    var USrPosY;

    document.addEventListener('mousemove', onMouseMove);

    function onMouseMove(event){
        USrPosX = event.clientX;
        USrPosY = event.clientY;
    }

    setInterval(Chk, 1000);

    function Chk(event) {
        console.log(USrPosX)
        console.log(USrPosY)
    } 

您可以看到我在事件侦听器“onMouseMove”中将“事件”作为参数。每当触发“mousemove”事件时,它由浏览器发送。


推荐阅读