相关疑难解决方法(0)

在JavaScript中,event.isTrigger是什么?

我在一些我正在研究的JS代码中遇到过这个问题:

if ( typeof( e.isTrigger ) == 'undefined' ) {
// do some stuff            
}
Run Code Online (Sandbox Code Playgroud)

这似乎是jQuery的一部分.据我所知,它会告诉您事件是由用户发起还是自动生成.

这是正确的吗?鉴于它没有记录,有没有办法找到这样的东西,而不是落后于jQuery API的幕后?

javascript jquery

34
推荐指数
2
解决办法
1万
查看次数

Javascript:检测事件是否由用户触发而不是以编程方式触发

好吧,这个问题之前已经被问过,但是在jQuery的背景下.在jQuery中,我们可以通过事件Object(link)的originalEvent属性来检查它,它告诉它是手动事件还是编程事件. 在我的情况下,我使用Javascript事件监听器和触发器.在这种情况下,我们可以区分这两种事件(编程和手动)吗?如果不是那么任何变通方法?



我的听众:

   function setUpListeners(){
       _cellViewWrapper.addEventListener('mousedown',mouseDownHandler,false);
       _cellViewWrapper.addEventListener('mouseover',mouseEnter,false);
       _cellViewWrapper.addEventListener('blur',blurHandler,true);
       _cellViewWrapper.addEventListener('focus',focusEventHandler,true);
   }`
Run Code Online (Sandbox Code Playgroud)

触发器使用案例:1.)

if(!IE_FLAG) hidePicker();
           //if browser is internet explorer
           else{
               //if blur is allowed then hide Picker
               if(_ieBlurAllowed) hidePicker();
               //if blur is not allowed -- keep focus on picker input
              //triggering the focus event here
               else blurredElement.focus(); /
         }
Run Code Online (Sandbox Code Playgroud)

2.) if((inputElem !== _focussedInput)) setTimeout(function(){ inputElem.focus(); },10);

还有很多...

javascript dom-events

11
推荐指数
3
解决办法
6505
查看次数

为什么调用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
查看次数

jQuery - 检测以编程方式触发的更改事件

change当用户更改给定SELECT元素时,我有一个 jQuery事件。然而,该事件也可能由第三方脚本触发。我想要做的是检测事件是以编程方式触发还是由用户触发。

我已经在这个问题中尝试了公认的解决方案检查事件是否由人类触发 但请注意,此答案中的 JSFiddle 是针对click事件而不是change事件。

为了演示我修改了小提琴并创建了这个:http : //jsfiddle.net/Uf8Wv/231/

如果您在最新的 Firefox 或 Chrome 中尝试此操作,您将看到human即使以编程方式触发事件时也会显示警报。

我试过了,event.originalEvent.isTrusted但这不适用于所有浏览器。任何人都可以帮忙吗?

javascript jquery

5
推荐指数
1
解决办法
3008
查看次数

如何检查焦点事件是否以编程方式触发

我想知道焦点事件是由程序触发还是人为触发?

我正在写剧本的一部分

    jQuery( document ).on( 'focus', '#song_artist_focus', function(event) {
                if(event.originalEvent === undefined ){
                 alert('I am not human');
                 return;}
                alert('I am human') ;
           });

                            
Run Code Online (Sandbox Code Playgroud)

当我像这样以编程方式调用这个脚本时

jQuery('#song_artist_focus').focus();
Run Code Online (Sandbox Code Playgroud)

它仍然表明事件是由人触发的。请帮忙 ?

更新

我检查了这个解决方案Check if event is generated by a human。但不适用于焦点事件。

javascript jquery

5
推荐指数
1
解决办法
1917
查看次数