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

Cannot read property 'clientX' of undefined while using console.log

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

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

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

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

您需要先注册mousemove事件

这是更正后的版本:

var USrPosX
var USrPosY
document.onmousemove = Chk;
setInterval(Chk, 1000);
function Chk(event) {
 event = event || window.event;
 USrPosX = event.clientX
 USrPosY = event.clientY
 console.log(USrPosX)
 console.log(USrPosY)
}