使用Javascript打开HTML文件输入单击不在Firefox中工作

使用Javascript打开HTML文件输入单击不在Firefox中工作,javascript,html,Javascript,Html,我有一个简单的HTML文件输入,可以在Chrome中用Javascript打开,但不能在Firefox中打开 <input type="file" id="fileImportInput" style="display:none"> document.getElementById('fileImportInput').click(); // this works in Chrome but not Firefox document.getElementById('fileImp

我有一个简单的HTML文件输入,可以在Chrome中用Javascript打开,但不能在Firefox中打开

<input type="file" id="fileImportInput" style="display:none">

document.getElementById('fileImportInput').click(); // this works in Chrome but not Firefox

document.getElementById('fileImportInput')。单击();//这适用于Chrome,但不适用于Firefox
我不知道为什么这在Firefox中不起作用。我没有控制台错误等。在Chrome中,文件浏览器打开,我可以选择我的文件,没有问题。有什么想法吗

谢谢


编辑:只是要注意,如果我从输入中删除display:none样式,它不会有任何区别。

我实际上已经让它工作了。Firefox有一个默认设置,可以阻止弹出窗口。只需转到“选项”并勾选即可。奇怪的是,它的阻止列表中包含文件对话框


您是如何运行代码的?它是在页面加载时运行的顶级代码,还是响应事件,还是。。。?当我在对事件处理程序的响应中调用
单击
时,这在Firefox中起作用。(即使是在由用户事件启动的计时器的计时器回调中。)请使用演示问题的示例更新您的问题,最好是使用堆栈片段(
[]
工具栏按钮;)运行的问题。如示例中所示,这是一种安全功能,在没有用户交互的情况下,您不能调用
单击
文件
输入。@Teemu-但在Chrome中也是如此(只是反复检查)。@AlanSmith-啊,这通常有点问题。如果在控制台中运行的东西与您期望的不一样,请尝试真正的运行。它不起作用,因为Firefox并不认为它是对用户事件的响应。(显然Chrome是这样做的,我刚刚确认了您所描述的内容。)在正常情况下不要这样做,启用该设置是有原因的。很明显,一次性的情况是不同的,但不要在禁用该选项的情况下浏览网页。:-)也不是一个兼容的方式来维持公共用途。不能强制用户使用相同的浏览器设置。建议使用不同的方法,让浏览器保持基本设置