2016-07-13 3 views
1

Я добавил слушателя событий для mousemove, который запускает функцию. По какой-то причине он не запускается в Chrome. Я могу сказать, потому что я пишу на консоль во время тестирования. Ключ eventlistener и свиток событий прокрутки запускаются, но mousemove не находится в Chrome. Он отлично работает в Safari и FireFox. Вот мой код:Событие MouseMove не запускается в Chrome

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

И функция это вызывает:

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/ Lc16gnwf/1 /) – brk

+0

Да, это работает со скобкой, я тоже это пробовал, но события 'scroll' и' keyup' не будут работать, если это проблема. –

ответ

0

Это работа, вы просто должны проверить, загружен ли 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> 

Тогда вы должны быть хорошо идти. Live here

+0

, протестированный как на mac, так и на pc –

-1

Благодарим всех вас за ввод. Я не публиковал HTML, потому что не думал, что это необходимо. Веб-приложение довольно активно, так что я его оставил. Короче говоря, если я смотрю консоль, пока я перемещаю мышь, движение мыши не войдет в систему на консоли. Щелчок вызывает событие mousemove, а события прокрутки и keyup регистрируются в консоли, но mousemove этого не делает. Я узнал, закрывая консоль, передвигая мышь, а затем просматривая консоль. Вуаля! Мусомова была зарегистрирована.

Я изменил свой код для более легкой отладки только во время тестирования.

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

Если кто-нибудь знает, почему консоль не будет регистрировать MouseMove в то время как я использую инструменты разработчика, пожалуйста, дайте мне знать.

+1

, он регистрируется при использовании инструментов разработчика: проверьте http://rachelgallen.com/listeners.html (я дал ему высоту, и теперь он регистрирует mousemove в прямом эфире). Я замечаю, что вы привыкли публиковать свои собственные ответы. Научитесь принимать ответ http://stackoverflow.com/help/accepted-answer. Вы получаете репутацию таким образом, как и ответчик. –

+0

Это то же самое, если вы поместили true или false в конце DOMContentLoaded eventListener: есть страница с false на http://www.rachelgallen.com/listeners1.html, другая [listeners.html] установлена ​​в true –

0

Проблема заключается в том, что события «mousemove» запускаются нечасто (только на холсте) , когда консоль открыта. Если консоль закрыта, они запускаются непрерывно, когда мышь перемещается по экрану.

+0

Интересно , У вас есть ссылка ссылки, чтобы я мог больше смотреть на это? – SherylHohman

Смежные вопросы