我正在为Opera浏览器制作音乐播放器扩展程序。这个想法很简单:从本地机器中选择文件并在侧边栏中播放它们。感谢<audio>
元素,一切正常,侧边栏面板打开。
我使用createObjectURL()
方法将文件传递给<audio>
元素。问题是它只保存对内存中文件的引用,当侧边栏面板卸载时会丢失。我可以将这些引用发送到后台脚本,但它无济于事。
使用FileReader
不是一个选项,因为它使用了大量的CPU和RAM,并在打开文件时暂时冻结浏览器。所以我提出了在后台脚本中使用createObjectURL()
方法的想法,因此在浏览器本身运行时引用将是活动的。
现在问题是我无法从后台脚本打开文件对话框。我可以创建文件类型输入,也可以使用click()
方法,但对话框窗口不会显示。但是,发生了click事件,因为正在调用onclick
事件侦听器。
所以我想请一些帮助。是否可以从后台脚本中打开文件对话框?如果是,我该如何才能使它发挥作用?