我需要确定导致焦点事件的原因.
理想情况下,我想区分点击,标签/键盘输入和手动(通过代码)触发器.
我怎样才能做到这一点?
我正在看事件对象,但我没有看到任何有用的东西.
在我的Chrome扩展程序的内容脚本中,我点击了某些网站上网页上的某些链接/按钮.为此,我在内容脚本中使用以下代码(我在内容脚本中嵌入了jQuery):
$(css_selector).trigger("click")
这适用于大多数网站.
但是,在delta.com,match.com和paypal.com等某些网站上,这种触发元素点击的方式不起作用.在delta.com上,当我尝试在内容脚本中触发时,我得到以下抛出的异常:
Error: An attempt was made to reference a Node in a context where it does not exist.
Error: NotFoundError: DOM Exception 8
奇怪的是,如果我打开javascript consoleon delta.com,包含一个jQuery并尝试相同的点击触发代码片段,它就可以了.
在match.com和paypal.com上,触发只是在内容脚本中不起作用并且没有错误.我甚至无法通过javascript控制台触发"click"事件,就像我在delta.com上所做的那样.
如果我手动使用鼠标单击,所有三个网站上的一切正常.因此我也尝试使用mousedown(),mouseup()模拟它,但这也不起作用.
这似乎是个问题,因为来自这些网站的javascripts正在劫持和忽略事件.我试图从这些网站读取代码,看看发生了什么,但代码太多了.
有没有人知道这里发生了什么以及如何解决它?
这个问题看起来像 In Jquery,我如何在程序和用户点击之间分辨?
但我无法得到它,我的代码
<div class="sample_class" onclick="sample_fn(arg1,arg2,arg3,arg4, e);" ></div>
<div class="trigger_class" onclick="trigger_fn()></div>
function sample_fn(arg1,arg2,arg3,arg4, e){
    console.log(e) ;
    console.log(e.isTrigger);
    console.log(e.hasOwnProperty('originalEvent'));
}
function trigger_fn(){
    $(".sample_class").trigger("click")
}
点击div.sample_class我进入控制台对象undefined false
点击div.tigger_class我进入控制台同样的事情对象undefined false
我无法区分这两次点击.提前致谢
在javascript/jquery中,我有一个按钮,其定义的click事件如下:
$("#target").click(function() {
    var mouse_click = ________________;
    // do stuff
    if (mouse_click) {
        // do stuff  
    }
    // do stuff
});
我也有代码要做
$('#target').click();
我怎样才能获得变量mouse_click是true,如果用户使用鼠标,而变量是手动点击标签false,当我用点击标签.click()功能?
谢谢