Chrome 中未触发 MouseMove 事件

npa*_*yne 6 javascript jquery google-chrome dom-events

我添加了一个事件侦听器来mousemove触发函数。由于某种原因,它在 Chrome 中没有被触发。我可以说出来,因为我在测试期间正在写入控制台。和keyup eventlistener都会scroll eventlistener触发,但mousemove在 Chrome 中不会触发。它在 Safari 和 FireFox 中运行良好。这是我的代码:

document.body.addEventListener("mousemove", RenewTimeoutTime);
document.body.addEventListener("keyup", RenewTimeoutTime);
document.body.addEventListener("scroll", RenewTimeoutTime);
Run Code Online (Sandbox Code Playgroud)

以及它触发的函数:

function RenewTimeoutTime(){
    var pageName = window.location.href;
    var currentTime = new Date();
    localStorage.setItem("inTimeout", false);
    localStorage.setItem("AI_Timeout_Time", currentTime.getTime() + 270000;
    console.log(localStorage.getItem("AI_Timeout_Time"));
}
Run Code Online (Sandbox Code Playgroud)

Rac*_*len 5

它确实有效,你只需要先检查 DOM 是否已加载。

将当前脚本替换为

<script>
document.addEventListener('DOMContentLoaded', addListen, false);  //this is the important bit

function addListen(){
    document.body.addEventListener("keyup", RenewTimeoutTime);
    document.body.addEventListener("scroll", RenewTimeoutTime);
    document.body.addEventListener("mousemove", RenewTimeoutTime);
}

function RenewTimeoutTime(){
    var pageName = window.location.href;
    var currentTime = new Date();
    var time = currentTime.getTime();    //i replaced the time just to be neat
    localStorage.setItem("inTimeout", false);
    localStorage.setItem("AI_Timeout_Time", time + 270000);
    console.log(localStorage.getItem("AI_Timeout_Time"));
}
</script>
Run Code Online (Sandbox Code Playgroud)

那么你应该可以走了。住在这里