我在我正在处理的一些 JS 代码中遇到了这个问题:
if ( typeof( e.isTrigger ) == 'undefined' ) {
// do some stuff
}
这似乎是 jQuery 的一部分。据我所知,它会告诉您事件是由用户发起还是自动发起。
这是正确的吗?鉴于它没有记录在案,有没有办法在不隐藏 jQuery API 的情况下找到这些东西?
我在我正在处理的一些 JS 代码中遇到了这个问题:
if ( typeof( e.isTrigger ) == 'undefined' ) {
// do some stuff
}
这似乎是 jQuery 的一部分。据我所知,它会告诉您事件是由用户发起还是自动发起。
这是正确的吗?鉴于它没有记录在案,有没有办法在不隐藏 jQuery API 的情况下找到这些东西?
在 jQuery 1.7.2(未缩小)中,第 3148 行包含event.isTrigger = true;
嵌套在触发器函数中。所以是的,你是对的 - 这仅在您使用时被标记.trigger()
并在内部用于确定如何处理事件。
现代浏览器与自动脚本打开的弹出窗口作斗争,而不是真正的用户点击。如果您不介意立即打开和关闭真实用户点击的窗口并显示自动点击的阻止弹出窗口警告,那么您可以使用这种方式:
button.onclick = (ev) => {
// Window will be shortly shown and closed for a real user click.
// For automated clicks a blocked popup warning will be shown.
const w = window.open();
if (w) {
w.close();
console.log('Real user clicked the button.');
return;
}
console.log('Automated click detected.');
};