Javascript dispatchEvent是否触发“默认”处理程序?

Javascript dispatchEvent是否触发“默认”处理程序?,javascript,dom,javascript-events,Javascript,Dom,Javascript Events,我创建了这个简短的代码片段来测试是否可以在javascript事件中触发default处理程序 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script></script> document.addEventListener('mo

我创建了这个简短的代码片段来测试是否可以在javascript事件中触发
default
处理程序

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script></script>
document.addEventListener('mousedown', function (e){
    console.log('mousedown', e);
    if (e.target === document.getElementById('target')) {
        if (!e.__redispatched) {
            e.preventDefault();
            e.stopPropagation();
            e.stopImmediatePropagation();
            var ne = new MouseEvent('mousedown', e);
            ne.__redispatched = true;
            setTimeout(function (){
                e.target.focus();
                e.target.dispatchEvent(ne);
            }, 1000);
        }
    }
}, true);
    </head>
    <body>
        <input type="text" id="target"/>
        <input type="text"/>
    </body>
</html>

document.addEventListener('mousedown',函数(e){
console.log('mousedown',e);
if(e.target==document.getElementById('target')){
如果(!e.uu重新修补){
e、 预防默认值();
e、 停止传播();
e、 停止即时复制();
var ne=新的MouseEvent('mousedown',e);
ne.\uu重新修补=真;
setTimeout(函数(){
e、 target.focus();
e、 目标调度事件(ne);
}, 1000);
}
}
},对);
我期望
target
input将接收事件并正常处理它,从而将插入符号移动到正确的位置(就像它在
mousedown
上通常做的那样)。但什么也没发生

我的问题: 我是否在处理合成事件时对
dispatchEvent
做了错误的处理,或者浏览器忽略了默认处理程序?有什么材料/证据证明这一点吗


谢谢。

不幸的是,浏览器忽略了不受信任的事件的默认事件处理程序

由用户代理生成的事件,或者是由于 用户交互或DOM更改的直接结果是 受用户代理信任,具有不授予的权限 脚本通过 createEvent(“事件”)方法,使用 initEvent()方法,或通过 EventTarget.dispatchEvent()方法。trusted的isTrusted属性 事件的值为true,而不受信任的事件的值为isTrusted 属性值为false

大多数不受信任的事件不应触发默认操作 单击事件的异常。此事件始终触发默认值 操作,即使isTrusted属性为false(此行为为 保留为向后兼容)。所有其他不受信任的事件必须 行为就像对该对象调用了Event.preventDefault()方法一样 事件


谢谢这似乎是答案。他们为什么这样做?