【发布时间】:2010-10-02 17:24:13
【问题描述】:
在 FireFox3 中单击 <input type="file" /> 的文本框部分时,将打开一个文件浏览窗口。
这在 IE7 中不会发生。您必须单击“浏览”按钮才能打开文件浏览窗口。
当用户单击文本框区域时,如何防止文件浏览窗口在 FireFox 中打开?我想要它,所以它只有在按下按钮时才会打开。
【问题讨论】:
标签: javascript css file input
在 FireFox3 中单击 <input type="file" /> 的文本框部分时,将打开一个文件浏览窗口。
这在 IE7 中不会发生。您必须单击“浏览”按钮才能打开文件浏览窗口。
当用户单击文本框区域时,如何防止文件浏览窗口在 FireFox 中打开?我想要它,所以它只有在按下按钮时才会打开。
【问题讨论】:
标签: javascript css file input
为什么你不能不理会预期的行为?大多数使用 FireFox 的人都希望它会发生。除非您没有说明实现这一点的实际“设计”原因,否则请不要尝试更改它。
【讨论】:
Firefox 这样做是为了防止使用文件输入的漏洞。
见this blog entry的结尾和下面的一些cmets。
我同意这很烦人,不是作为网站设计师/开发人员,而是作为 Firefox 的用户;有时我只想粘贴一个文件名,而不必点击对话框。
【讨论】:
当用户点击文本框区域时,如何防止文件浏览窗口在 FireFox 中打开?
用另一个元素遮住它。
<div style="position: relative">
<input type="file" />
<div style="position: absolute; top: 0; left: 0; width: 11em; height: 2em;"> </div>
</div>
但不要这样做。它非常脆弱,在许多情况下都会破裂。
我希望它只有在按下按钮时才会打开。
不过,我怀疑您的用户会喜欢它。它从浏览器中删除了预期的功能,并且不会用更好的东西代替它。或者实际上任何东西。
【讨论】:
即使你真的想这样做,我认为这是不可能的。
【讨论】:
是的,网页对此无能为力。
我不知道可以控制这个的 FF 配置设置,所以你被 #3 困住了:
通过扩展,它可能可以改变这种行为,但是你必须让你的用户安装你的扩展(对于内部应用可能是可行的)并处理错误它可能会引入到应用程序中。
【讨论】:
一个简单的解决方法不是创建一个文本输入字段和一个按钮,该按钮用于触发文件浏览器,然后将信息填充回文本字段吗?我对这一切还很陌生,并且正在阅读很多关于这个问题的问题,包括 FF3 没有像以前的版本那样对 input=file 应用相同的 css 样式。
【讨论】: