Javascript 单击表单字段部分时,是否在FireFox3中打开文件浏览窗口?

Javascript 单击表单字段部分时,是否在FireFox3中打开文件浏览窗口?,javascript,css,file,input,Javascript,Css,File,Input,在FireFox3中单击文件的文本框部分时,会打开一个文件浏览窗口 这在IE7中不会发生。您必须单击浏览按钮打开文件浏览窗口 当用户单击文本框区域时,如何防止文件浏览窗口在FireFox中打开?我希望它只有在按下按钮时才会打开。为什么不能让预期的行为保持安静?大多数使用FireFox的人都会期待它的出现。除非有您没有说明的实际设计原因,否则请不要尝试更改它。即使您真的想这样做,我认为这是不可能的。Firefox这样做是为了防止使用文件输入进行攻击 请参阅本文结尾和下面的一些评论 我同意这是非常烦

在FireFox3中单击文件的文本框部分时,会打开一个文件浏览窗口

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


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

为什么不能让预期的行为保持安静?大多数使用FireFox的人都会期待它的出现。除非有您没有说明的实际设计原因,否则请不要尝试更改它。

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

Firefox这样做是为了防止使用文件输入进行攻击

请参阅本文结尾和下面的一些评论


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

是的,它可以,网页对此无能为力

我不知道FF配置设置会控制这一点,所以您只能使用3:

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

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

用另一个元素来掩盖它

<div style="position: relative">
    <input type="file" />
    <div style="position: absolute; top: 0; left: 0; width: 11em; height: 2em;"> </div>
</div>
但不要这样做。它非常易碎,在许多情况下都会断裂

我希望它只在按下按钮时打开


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

一个简单的解决方法不是创建一个文本输入字段和一个按钮,该按钮用于触发文件浏览器,然后将信息填充回文本字段吗?我对这一切都很陌生,我读了很多关于这个问题的文章,包括FF3没有像以前的版本那样对input=文件应用相同的css样式。

谢谢你的回答,先生,但我的问题需要一个技术性的回答。这在技术上是不可能的。如果你想改变FireFox的默认行为,你可以为它编写一个插件。@hornysaax有时候技术上的答案是不要这样做。它的行为就像Safari一样。他希望改变它的工作方式吗?我必须承认,看起来像文本输入控件的东西以这种方式工作是出乎意料的。我的意思是任何看起来像文本输入的东西,你可以点击然后输入一些文本。因此,我可以理解,他想更改一些他不熟悉的内容。您可以在“windows文件打开”对话框的“文件名”框中粘贴包含完整路径的文件名。感谢您尝试回答此问题。这还将禁用“浏览”按钮,除非宽度与文本框完全相同。它还将禁用在框中突出显示文本和复制的功能。事实上,正如所指出的那样,这并不理想。em中的大小与Firefox 3的大小大致相同,但您永远无法精确地确定。当然,这会破坏其他浏览器。但是对于FireFox3,唉,剪切和粘贴功能已经消失了。我可以在FireFox3中复制。我只在Mac上测试过,但你可以复制文本。是的,它将破坏所有其他浏览器,除非您仅为FireFox动态插入它。它可能会完全破坏Safari,因为它的文件输入比其他文件短得多。