为什么IE8中的<input type =“file”/>框灰色?

时间:2011-04-14 11:42:48

标签: asp.net internet-explorer-8 internet-explorer-7 file-io

任何人都可以解释为什么我的input type="file"在IE8中是灰色的而不是IE7。它仍然可用,但你实际上不能再在盒子里打字了。

<INPUT id="fil1" type="file" size="44" name="fil1" runat="server">

IE7:

In IE7

IE8:

In IE8

2 个答案:

答案 0 :(得分:2)

<input type='file'>被视为所有浏览器中的特殊情况输入字段。它几乎在每个浏览器中看起来都不同,并且不能使用CSS轻松设置样式。

这样做的原因是浏览器认为它存在安全问题,例如,用户可能在没有意识到的情况下上传文件。因此,它们强制执行标准的外观和感觉,以便始终识别该字段的内容。它们还可以防止CSS和Javascript访问该字段,这样他们就无法修改它的外观或改变它的值。

对于IE8,浏览器开发人员已决定允许用户访问该字段的唯一方法是通过文件选择器按钮。这是IE开发人员为提高安全性所做的一个有意义的决定。你无能为力。

为了好奇,你应该试着看看<input type='field'>在其他浏览器中是如何渲染的 - Firefox,Safari,Chrome,Opera ......你会惊讶于它们在渲染方式上有多么不同这个。它可能是单个最不一致的渲染元素。

答案 1 :(得分:-1)

因为文本框是只读的;这是预期的行为。您可以使用“浏览”按钮选择文件。

键入不是一个选项,因为该文件位于用户PC上,并且网页无法直接访问这些文件。