【问题标题】:<input type="file" /> opens file browse window in FireFox3 when clicking the form field part?<input type="file" /> 单击表单字段部分时在FireFox3中打开文件浏览窗口?
【发布时间】:2010-10-02 17:24:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript css file input


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答先生,但我的问题需要技术回答。
    • 这在技术上是不可能的。如果你想改变 FireFox 的默认行为,你可以为它写一个插件。
    • @hornysaax 有时技术上的答案是“不要那样做”。
    【解决方案2】:

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

    this blog entry的结尾和下面的一些cmets。

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

    【讨论】:

    • 它就像 Safari 一样。他是否希望改变它的工作方式?
    • 我不得不承认,看起来像文本输入控件的东西以这种方式运行是出乎意料的。我的意思是任何其他看起来像文本输入的内容,您可以单击然后键入一些文本。所以我能理解他想要改变一些他觉得陌生的东西。
    • 您可以在windows文件打开对话框的文件名框中粘贴包含完整路径的文件名。
    【解决方案3】:

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

    用另一个元素遮住它。

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

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

    我希望它只有在按下按钮时才会打开。

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

    【讨论】:

    • 感谢您尝试回答问题。
    • 这也将禁用“浏览”按钮,除非宽度与文本框完全相同。它还将禁用突出显示框中的文本并进行复制的功能。
    • 确实,如前所述,它并不理想。 em 中的大小或多或少与 Firefox 3 所做的相匹配,但您永远无法准确。当然,它会破坏其他浏览器。但是对于 Firefox 3,唉,剪切和粘贴功能已经没有了。
    • 我可以在 FireFox3 中复制。我只在 Mac 上测试过,但你可以复制文本。是的,它会破坏所有其他浏览器,除非您仅为 FireFox 动态插入它。它可能会完全破坏 Safari,因为它的文件输入比其他的短得多。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-17
          • 2012-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多