google-chrome - 调用 showOpenFilePicker :调用类方法时如何避免“必须来自手势”
问题描述
访问本地文件系统:https ://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle
如果我直接在我的按钮事件关闭中内联我所有的 show(Open|Save)FilePicker API 逻辑代码或调用普通的 fn,那么一切正常。但是,如果我定义一个带有帮助器方法的类并从我的事件处理程序中调用这些方法,并且这些帮助器调用文件选择器,那么我会收到此错误:
Uncaught DOMException: Failed to execute 'showOpenFilePicker' on 'Window': Must be handling a user gesture to show a file picker.
我假设安全系统正在考虑this
建立手势上下文 - 有没有办法用我的班级中运行的代码重新建立这个上下文?
解决方案
原来类方法是一个红鲱鱼 - 问题与异步代码和承诺有关 - 这就是失去上下文并导致错误的原因。您需要在没有任何承诺链接的情况下对 FS 进行任何调用。
推荐阅读
- html - 网格中卡片的高度不是动态的
- python - 普通 python 中的类 Django 单元测试数据库
- html - 适用于 Bootstrap 3.0.3 但不适用于 3.3.7 的可折叠侧边栏
- php - strtotime(+1 个月) 和 12 月/明年的行为
- jquery - Angular 5 - 如何在使用 *ngFor 创建 HTML 元素时调用函数
- xml - 如何在 Notes 客户端中使用带有 XML 的 Dojo 数据网格
- windows - 使用 powershell 脚本/命令禁用表面自动旋转
- r - 样本(.)与计算的概率
- c++ - 如何在 C++ 中删除字符串中的表情符号
- concurrency - Perl6 制作一个可观察的计时器