You need to enable JavaScript to run this app. 使用console.log打印坐标时报Cannot read property 'clientX' of undefined错误
优惠活动
大模型
产品
解决方案
定价
更多

使用console.log打印坐标时报Cannot read property 'clientX' of undefined错误

错误原因

event对象仅在事件触发的回调执行上下文中才会被默认注入,你通过setInterval定时调用Chk函数时,没有对应的鼠标/交互事件触发,此时全局event为undefined,调用event.clientX自然会抛出你遇到的报错:Uncaught TypeError: Cannot read property 'clientX' of undefined,该问题和循环逻辑无关。

修复方案

你可以先通过mousemove事件监听实时更新鼠标坐标到全局变量,再在定时器中直接读取存储好的坐标值即可,修正后代码如下:

var USrPosX
var USrPosY
// 监听鼠标移动事件,实时更新坐标
document.addEventListener('mousemove', function(event) {
  USrPosX = event.clientX
  USrPosY = event.clientY
})
setInterval(Chk, 1000)
function Chk() {
  // 直接读取已经存储好的坐标,不需要再访问event
  console.log(USrPosX)
  console.log(USrPosY)
}

逻辑说明

  • 鼠标移动时事件回调会拿到合法的event对象,实时更新坐标变量
  • 定时器仅负责定期读取已经存储的坐标值,不需要直接访问事件对象,避免了undefined报错

内容的提问来源于stack exchange,提问作者TheCookieClickerCopyCat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 21:09:00