2016-12-24 8 views
1

я в настоящее время сохранения движения мыши координаты в файл JSON каждую 1 секунду за счет использования следующих:Остановить сохранение в формате JSON файла при наведении курсора мыши из Broswer

window.onload = function() { 
    setInterval(track, 1000); 
} 

трек является функция, сохраняет координаты json-файла через ajax.

Однако, используя этот метод, когда мышь не находится в браузере, функция все еще обновляется каждую секунду и поэтому берет последние сохраненные координаты в event.clientX/Y.

Я знаю о функциях onmouseenter и onmouseout, однако мне не удалось реализовать их для моей цели. Я проверил функции следующим образом:

document.onmouseenter = function(i){ 
    console.log('IN'); 
} 

document.onmouseleave = function(l){ 
    console.log('OUT'); 
} 

Однако выше OnMouseEnter Funtion только выводит «IN», когда первый щелчок сделан. Хотя функция onmouseleave никогда не выводит «OUT».

Любые предложения будут высоко оценены

+0

Вы можете просто сравнить новую позицию мыши с последней отслеженной позицией и решить не регистрировать ее, если она не изменилась. –

+0

однако я хотел бы отслеживать всю активность мыши на веб-сайте, поэтому, к сожалению, это невозможно: / – KrisF

ответ

0

Как насчет незаходимого х/у после сохранения затем проверить, если они установлены, когда вы пытаетесь сохранить?

var x, y; // store mouse coords 

window.addEventListener('mousemove', function(e) { 
    x = e.clientX; 
    y = e.clientY; 
}); 

setInterval(function() { 
    if (x !== undefined && y !== undefined) { // check if they're set 
    // save your locations, only called when mouse is moved on page 
    x = y = undefined; // unset them 
    } 
}, 1000); 
0

Вы можете использовать приведенный ниже код. Измените его согласно вашему требованию, если это необходимо. В основном вам нужно обрабатывать следующие события:

  1. Окно Load
  2. Tab Фокус
  3. окно Размытие [Вместо мыши Out]
  4. Окно Перед Unload [Перед закрытием браузера]

$(document).ready(function() { 
 

 
    $(window).load(function() { 
 
    // Call your function to START storing the data 
 
    }); 
 

 
    $(window).focus(function() { 
 
    // Call your function to START storing the data 
 
    }); 
 

 
    $(window).blur(function() { 
 
    // Call your function to STOP storing the data 
 
    }); 
 

 
    //tabCloseEvent(); 
 
    $(window).bind('beforeunload', function() { 
 
    // Call your function to STOP storing the data 
 
    }); 
 

 

 

 
});