我在处理一些JS代码时遇到了这个:
if ( typeof( e.isTrigger ) == 'undefined' ) {
// do some stuff
}
这似乎是jQuery的一部分。据我所见,它告诉你事件是由用户还是自动触发的。
这样对吗?鉴于它没有被记录在文档中,是否有一种方法可以在不深入研究jQuery API的情况下找出这样的内容?
我在处理一些JS代码时遇到了这个:
if ( typeof( e.isTrigger ) == 'undefined' ) {
// do some stuff
}
这似乎是jQuery的一部分。据我所见,它告诉你事件是由用户还是自动触发的。
这样对吗?鉴于它没有被记录在文档中,是否有一种方法可以在不深入研究jQuery API的情况下找出这样的内容?
event.isTrigger = true;
。所以,是的,您是正确的 —— 这只有在使用 .trigger()
时才被标记,并且在内部用于确定如何处理事件。现代浏览器会抵制由自动化脚本打开的弹出窗口,而不是真实用户的点击。如果您不介意为真实用户的点击迅速打开和关闭一个窗口,并对自动点击显示一个被阻止的弹出窗口警告,则可以使用以下方法:
Original Answer 翻译成“最初的回答”
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.');
};
e.isTrigger
没有文件记录,未来版本不保证会保留该功能,因此不应在生产代码中使用。 - rhgb