2016-07-13 4 views
1

함수를 트리거하는 mousemove에 대한 이벤트 리스너를 추가했습니다. 어떤 이유로 Chrome에서 트리거되지 않습니다. 테스트 중에 콘솔에 쓰고 있기 때문에 알 수 있습니다. keyup eventlistener와 scroll eventlistener가 모두 트리거되지만 mousemove는 Chrome에 없습니다. 그것은 사파리와 파이어 폭스에서 잘 작동합니다. 여기 내 코드입니다 :MouseMove 이벤트가 Chrome에서 트리거되지 않음

document.body.addEventListener("mousemove", RenewTimeoutTime); 
document.body.addEventListener("keyup", RenewTimeoutTime); 
document.body.addEventListener("scroll", RenewTimeoutTime); 

는 그리고 기능은 트리거 : 그것은 작품, 그냥 DOM이 처음로드되었는지 확인해야합니까

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")); 
} 
+1

[jsFiddle] (http://jsfiddle.net/)에서 문제를 설명하는 기능적 예를 게시하십시오. –

+0

localstorage.setItem ("AI_Timeout_Time", currentTime.getTime() + 270000;')에')'이 누락되어있는 것이 가장 정확합니다. [** JSFIDDLE **] (https://jsfiddle.net/)를 확인하십시오. – brk

+0

그래, 그것도 괄호와 함께 작동하지만, 역시 시도했지만'scroll'과'keyup' 이벤트는 문제가 있다면 잘 작동하지 않을 것입니다. –

답변

0

.

은 그럼 당신은 갈 수 있어야한다

<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> 

로 현재 스크립트를 교체합니다. 라이브 here

+0

은 mac와 pc 모두에서 테스트했습니다 –

-1

입력 해 주셔서 감사합니다. 필자는 HTML이 필요하다고 생각하지 않았기 때문에 HTML을 게시하지 않았습니다. 웹 앱이 상당히 복잡해서 빠져 버렸습니다. 간단히 말해, 마우스를 움직이는 동안 콘솔을 보면 마우스 움직임이 콘솔에 기록되지 않습니다. 클릭하면 mousemove 이벤트가 시작되고 scroll 및 keyup 이벤트는 콘솔에 로그인하지만 mousemove는 실행하지 않습니다. 나는 콘솔을 닫고, 마우스를 움직이고, 콘솔을 보는 것으로 알았다. 빌라! mousemove가 기록되었습니다.

테스트 도중 디버깅을 쉽게 할 수 있도록 코드를 변경했습니다. 내가 개발자 도구를 사용하고있는 동안 콘솔이 MouseMove 이벤트를 기록하지 왜 사람이 알고있는 경우

window.addEventListener("mousemove", function(){console.log("mouse move");}); 
window.addEventListener("keyup", function(){console.log("keyup");}); 
window.addEventListener("scroll", function(){console.log("scroll");}); 

알려 주시기 바랍니다.

+1

개발자 도구를 사용하는 동안 로그를합니다 : http://rachelgallen.com/listeners.html을 확인하십시오. (높이를주고 지금은 mousemove를 기록합니다). 나는 당신이 자신의 답변을 게시하는 습관을 만들었다는 것을 알게됩니다. 답변 수락 방법 http://stackoverflow.com/help/accepted-answer 수혜자와 마찬가지로 평판이 좋습니다. –

+0

DOMContentLoaded eventListener의 끝에 true 또는 false를 넣었는지 여부는 동일합니다. http://www.rachelgallen.com/listeners1.html에 false가있는 페이지가 있고 다른 [listeners.html]이 true로 설정되어 있습니다 –

0

콘솔이 열려있을 때 "mousemove"이벤트가 자주 발생하지 않는 것 같습니다 (캔버스 클릭 만) . 콘솔이 닫히면 마우스가 화면 주위를 이동할 때 계속 발사됩니다.

+0

흥미 롭습니다 . 참조 링크가있어서이 부분을 더 자세히 볼 수 있습니까? – SherylHohman

관련 문제