开发者问题收集

使用 console.log 时无法读取未定义的属性“clientX”

2021-07-01
329

我尝试制作一个简单的游戏作弊检测器,在测试时遇到了这个问题。我的问题是,当我尝试打印坐标时,它给出了这个错误: Uncaught TypeError:无法读取未定义的属性“clientX”

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

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

您收到错误的原因是您从未指定“事件”。 通过查看您要执行的操作,我假设您想要获取鼠标坐标。如果您正在监听文档上的“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”事件时,浏览器都会发送该事件。

Nikola.grancharov
2021-07-01

您需要先注册Mousemove事件。

这是一个更正的版本:

330110477
Mainuddin
2021-07-01