相关疑难解决方法(0)

检查事件是否由人类触发

我有一个附加到事件的处理程序,我希望它只在由人类触发时执行,而不是由trigger()方法触发.我该如何区分?

例如,

$('.checkbox').change(function(e){
  if (e.isHuman())
  {
    alert ('human');
  }
});

$('.checkbox').trigger('change'); //doesn't alert
Run Code Online (Sandbox Code Playgroud)

jquery

134
推荐指数
5
解决办法
5万
查看次数

为什么调用Window.scroll()会给出一个受信任的事件?

我有一个Chrome扩展程序需要产生类似人类的鼠标和键盘行为(具体来说,生成具有isTrusted值的事件true).除了滚动chrome.debuggerAPI 之外,我可以做我需要的一切.

但似乎该Window.scroll()方法足以达到Chrome 52和Firefox 48.0a1的目的.通过将事件侦听器附加到页面可以观察到这一点,如下所示:

document.addEventListener("scroll", function (event) { 
    console.log("event trusted? " + event.isTrusted);
});
Run Code Online (Sandbox Code Playgroud)

然后window.scroll(0, 10);在开发者控制台中运行类似的东西.这将登录event trusted? true到开发人员控制台.

我的问题是:为什么会这样?由于滚动事件是由脚本明确生成的,因此isTrusted属性不应该是false这种情况吗?

javascript javascript-events

10
推荐指数
2
解决办法
1108
查看次数

标签 统计

javascript ×1

javascript-events ×1

jquery ×1