gpt4 book ai didi

javascript - 可以在 Web 浏览器中捕获所有事件吗?

转载 作者:行者123 更新时间:2023-11-29 15:05:58 27 4
gpt4 key购买 nike

我正在从事一个宠物项目,目前正处于研究阶段。

快速总结

我正在尝试拦截所有表单提交、onclick 和每一个按键。我选择的库是 jquery 或 jquery + prototypejs。我想我可以将事件分批放入一个队列/堆栈中,然后按时间间隔分批将其发送回服务器,以保持性能相对稳定。

疑虑

表单提交和更改会相对简单。类似

$("form :inputs").bind("change", function() { ... record event... }); 

但是如何确保我优先于应用程序处理程序,因为我习惯在出现验证问题时将 return false 放在我的许多表单处理程序上。据我了解,这有效地阻止了事件的发生。

我的项目

对于我较小的远程客户,我会将他们的产品放在 VPS 上或在我的家庭数据中心运行。目前,我使用基本的身份验证系统,给定用户名/密码,他们会看到该网站,然后希望向我发送一些关于损坏或应该调整的理智注释。

作为更好的解决方案,我编写了一个简单的代理 Web 服务器,它执行上述操作但允许我有一个 DNS 条目,然后根据凭据它发出内部请求中继 header 并根据需要重写 URLS。每个 html/text 或 application/* 请求都被压缩并推送到一个 sqlite 表中,这样我就可以部分重播他们所做的事情。现在我正在转向前端,想要捕获页面上所有内容的点击、按键和提交。

最佳答案

要解决 return false; 问题,请尝试使用自定义事件。

// Bind custom event to all forms

$('form').bind('custom_submit_event',function() {
alert('custom submit event');
});

// Bind submit event to all forms that triggers the custom event

$('form').submit(function() {
$(this).trigger('custom_submit_event');
});

// Your regular submit event for a specific form

$('#myform').submit(function() {
// Run validation/submission code
return false;
});

我没有经常使用自定义事件,但这对我有用。不知道为什么它也不适用于其他事件。

您还可以将处理程序分配给文档。只要您没有遇到 return false; 问题,它们的事件就会冒泡到文档中。可能比在整个页面中使用许多事件处理程序的开销更好(更有效)。

    $(document).click(function() {
alert('click')
})
.keydown(function() {
alert('keydown')
});

关于javascript - 可以在 Web 浏览器中捕获所有事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752393/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com