Safari 输入文件单击 javascript 在安全事件中不起作用

问题描述 投票:0回答:1

我有一个事件函数,它有异步任务,其中一些承诺等待结束。当我尝试打开

<input type="file"/>
后,即使事件是可信的,也不会打开 FileDialog

示例:

<html><body>
    <script>
        function myPromise() {
            return new Promise((res, rej) => {
                setTimeout(() => res(true), 1);
            });
        }
        async function btnClick(event) {
            event.preventDefault();

            console.log(event.isTrusted);
            try {
                await myPromise();
            } catch (err) {

            }
            document.querySelector("input").click();
            console.log(event.isTrusted);
        }
    </script>
    <input type="file"/>
    <button onclick="btnClick(event)">btn</button>
</html></body>

我的控制台返回

true
true

因此,该事件直到最后都是可信的,但 safari 不会打开对话框。还有其他规则吗?

javascript promise safari
1个回答
0
投票

我遇到了同样的问题。谁能帮帮我!!!

© www.soinside.com 2019 - 2024. All rights reserved.