Safari输入文件单击javascript don';我不能在安全事件中工作

Safari输入文件单击javascript don';我不能在安全事件中工作,javascript,promise,safari,Javascript,Promise,Safari,我有一个事件函数,它有一个异步任务,有一些承诺等待结束。当我尝试在所有safari之后打开一个时,即使事件是可信的,也不要打开文件对话框 例如: 函数myPromise(){ 返回新承诺((res,rej)=>{ setTimeout(()=>res(true),1); }); } 异步函数btnClick(事件){ event.preventDefault(); console.log(event.isTrusted); 试一试{ 等待我的承诺(); }捕捉(错误){ } document.

我有一个事件函数,它有一个异步任务,有一些承诺等待结束。当我尝试在所有safari之后打开一个
时,即使事件是可信的,也不要打开文件对话框

例如:


函数myPromise(){
返回新承诺((res,rej)=>{
setTimeout(()=>res(true),1);
});
}
异步函数btnClick(事件){
event.preventDefault();
console.log(event.isTrusted);
试一试{
等待我的承诺();
}捕捉(错误){
}
document.querySelector(“输入”)。单击();
console.log(event.isTrusted);
}
btn
我的控制台返回

true
true

因此,事件在结束前都是可信的,但safari不会打开对话框。还有其他规则吗?

await
是回调的语法糖。回调以异步方式运行,因此您不再处于原始单击事件的上下文中。是否有方法将“受信任”上下文发送到回调?还是不可能?我不这么认为,因为这样会允许代码绕过弹出窗口阻止程序。