【问题标题】:'Accept' attribute of input element is not working输入元素的“接受”属性不起作用
【发布时间】:2011-01-31 02:40:11
【问题描述】:

我在 html 中发现了一个浏览文件对话框控制标签,该标签是

<input id="myfile" name="myfile" type="file" accept="application/pdf"/>

但“接受”属性似乎没有任何作用。我正在使用 Internet Explorer 8。

【问题讨论】:

    标签: html cross-browser html-input


    【解决方案1】:

    根据 w3schools (http://www.w3schools.com/TAGS/att_input_accept.asp),任何主流浏览器都不正确支持“accept”属性。文件浏览器对话框内的过滤器将不起作用。

    您可以在表单 onsubmit 事件上使用 javascript 验证来验证文件类型是否正确,否则返回 false。

    【讨论】:

    • 我没有在页面中看到主要浏览器不支持它的原因。
    • @BehnazChangizi 问题和答案都是5+岁,答案不再正确。大多数主流浏览器,包括 IE 10+,现在都支持accept,它是 HTML5 规范的一部分。
    • 2015 年 12 月仍未得到正确支持。例如,我正在尝试接受字体文件。我为“accept”属性提供了以下逗号分隔的 MIME 内容类型列表:“application/font-tdpfr,application/font-woff,application/x-font-bdf,application/x-font-ghostscript,application/x -font-linux-psf,application/x-font-otf,application/x-font-pcf,application/x-font-snf,application/x-font-ttf,application/x-font-type1"。当对话框打开时,文件类型下拉列表中列出的唯一项目是“所有文件”和“WOFF 文件 (.woff)”。所以它彻底坏了。缺少 TTF 等。
    • 甚至就在 2 年前,讨论的主题是不断变化的“标准”,以及只有一种浏览器 Chrome 是如何实现支持的,甚至是不一致的。 bugzilla.mozilla.org/show_bug.cgi?id=826176#c3
    【解决方案2】:

    浏览器似乎无法遵循此处找到的 IANA 规范: http://www.iana.org/assignments/media-types/media-types.xhtml

    在我的例子中,application/pkcs* 媒体类型根本不起作用,而由于某种原因 application/x-pkcs12 在 chrome 中工作,而在 IE 中部分(.p12)工作。 Firefox 似乎完全忘记了。

    我还在这里找到了这个更乐观的讨论。 File input 'accept' attribute - is it useful?

    因此,最好的描述是“可能不支持不常见的格式”,并且在我的情况下,x-pkcs 与 pkcs 的混淆或多或少无法使用。

    【讨论】:

      【解决方案3】:

      分隔符

      我可以在一些现代浏览器中确认,如果您希望显示文件对话框类型,您需要使用逗号作为分隔符:

      <input accept="image/apng, image/jpeg, image/png" name="example" type="file" />
      

      【讨论】:

        猜你喜欢
        • 2018-01-11
        • 2018-08-15
        • 2019-04-22
        • 1970-01-01
        • 2015-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多