捕获用户在网站上的所有鼠标点击

时间:2016-11-15 16:38:25

标签: jquery html

我可以在页面导航之前通过jquery 捕获用户在<a>标签上的鼠标点击吗?我想通过ajax调用发送它们并将它们记录在数据库中。

4 个答案:

答案 0 :(得分:1)

您可以捕获mousedown或单击的任何文档。也许更好的mousedown,以免被其他点击事件阻止(通过event.preventDefault)。

document.onmousedown = function (event) {
  if (!event) {event = window.event;}
  console.log("mousedown "+event.target, event);
  // Post the event object here.
};

使用jQuery:

$(document).on('mousedown', function (event) {
  console.log("mousedown "+event.target, event);
  // Post the event object here.
});

答案 1 :(得分:0)

您可以使用jQuery的click()方法捕获所有鼠标事件,如下所示:

capture_mouse_clicks = [];

$('#id').on('click', function(e) {
    capture_mouse_clicks.push({
        event: 'click',
        target: $(this).attr('id'),
    })
})

希望这有帮助!

答案 2 :(得分:0)

你可以在标签上放置onclick处理程序,但是当页面导航时你的ajax可能会失败,但如果服务器响应很快,那么xhr会在中途被取消。

您可以在异步ajax之后立即在代码中添加轻微的JS延迟。这可能有所帮助。

答案 3 :(得分:0)

为此,您需要将它们存储在全局数组或全局变量中,可以在整个页面中访问它们。您可以通过编写捕获事件的函数来捕获整个事件,因此我更喜欢包含所有事件对象的数组。

接下来当您离开页面时,使用window.onbeforeunload事件并进行ajax调用以进行后调用并将数据对象保存在数据库中。

上述两个步骤的代码相对简单。