0

单击<input type="file" />FireFox3 中的文本框部分时,将打开一个文件浏览窗口。

这在 IE7 中不会发生。您必须单击“浏览”按钮才能打开文件浏览窗口。

当用户单击文本框区域时,如何防止文件浏览窗口在 FireFox 中打开?我想要它,所以它只有在按下按钮时才会打开。

4

6 回答 6

16

为什么你不能不理会预期的行为?大多数使用 FireFox 的人都希望它会发生。除非您没有说明实现这一点的实际“设计”原因,否则请不要尝试更改它。

于 2009-01-21T16:02:24.713 回答
6

Firefox 这样做是为了防止使用文件输入的漏洞。

请参阅此博客条目的结尾和下面的一些评论。

我同意这很烦人,不是作为网站设计师/开发人员,而是作为 Firefox 的用户;有时我只想粘贴文件名而不必单击对话框。

于 2009-01-21T16:11:14.760 回答
2

即使你真的想这样做,我认为这是不可能的。

于 2009-01-21T16:06:00.777 回答
2

当用户单击文本框区域时,如何防止文件浏览窗口在 FireFox 中打开?

用另一个元素掩盖它。

<div style="position: relative">
    <input type="file" />
    <div style="position: absolute; top: 0; left: 0; width: 11em; height: 2em;"> </div>
</div>

但不要这样做。它非常脆弱,在许多情况下都会破裂。

我想要它,所以它只有在按下按钮时才会打开。

不过,我怀疑您的用户会喜欢它。它从浏览器中删除了预期的功能,并且不会用更好的东西代替它。或者实际上任何东西。

于 2009-01-21T17:01:56.107 回答
0

是的,它没有,网页对此无能为力。

我不知道可以控制这个的 FF 配置设置,所以你被 #3 困住了:

使用扩展程序可能会改变这种行为,但是您必须让您的用户安装您的扩展程序(对于内部应用程序可能是可行的)并处理它可能引入应用程序的错误。

于 2009-01-21T16:30:49.617 回答
0

一个简单的解决方法不是创建一个文本输入字段和一个按钮,该按钮用于触发文件浏览器,然后将信息填充回文本字段?我对这一切都很陌生,并且正在阅读很多关于这个问题的问题,包括 FF3 没有将相同的 css 样式应用于 input=file 的事实,因为它在以前的版本中所做的。

于 2009-07-16T01:37:08.890 回答