我有一段时间遇到这个问题,我无法在任何地方找到解决方案,基本上我试图在输入文件类型上触发click事件但是这个事件需要在promise中触发,当我试图直接在承诺内触发事件控制台记录错误说“正在进行摘要” 如果我在promise中放置一个超时,错误消失但事件没有被触发,我做这项工作的唯一方法是在promise之外添加一个超时约一秒,但我真的不想依赖于此定义超时的事件
控制器看起来像这样
scope.handleDblClick = function () {
asyncFunction()
.then(function (response){
switch(response){
case 'option1':
//do something
break;
case 'option2':
document.getElementById('fileInputId').click();
break;
}
});
}
双击此文本输入时会触发此功能
<input type="text" ng-dblclick="handleDblClick()"/>
这是一个需要在promise
中触发的文件输入<input type="file" id="fileInputId"/>
事件需要以这种方式触发,因为async函数的结果确定是否要单击输入文件或是否会采取其他操作,handleDblClick函数根据promise的响应处理不同的操作,其中一个操作包括打开文件浏览器来选择文件
答案 0 :(得分:1)
我找到了自己的答案,结果是java脚本只会触发输入文件元素的对话框,如果它来自用户触发的事件处理程序并且必须被信任:)谢谢!
我将链接留在这里