我可以在页面导航之前通过jquery 捕获用户在<a>
标签上的鼠标点击吗?我想通过ajax调用发送它们并将它们记录在数据库中。
答案 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调用以进行后调用并将数据对象保存在数据库中。
上述两个步骤的代码相对简单。