输入文件未在IE上打开文件上传框

时间:2017-10-31 22:10:41

标签: html css internet-explorer label html-form

我有一个NSObject元素及其对应的label,还包含夹在两个input type="file"元素之间的img元素。

span本身被声明为input,允许display:none在单击其中的任何元素时执行启动文件上载框的工作。当然,这在IE以外的每个主要浏览器中都可以使用。在IE中,点击label 其他内的任何位置都会启动文件上传框,但点击label则不会...

您可以通过在IE中打开this fiddle以及任何其他浏览器来复制此问题。

奇怪的是,这个问题可以被隔离到img的存在。出于某种原因,当img包装器被移除时,标签正常运行。我显然不能用这个作为解决方案。想法?

1 个答案:

答案 0 :(得分:5)

这是IE中的已知错误,您可以在Microsoft Connect

中看到它

要解决,只需将pointer-events: none;添加到<img>

即可

它可能会导致某些浏览器在单击时突出显示图像。为避免这种情况,使图像无法选择。

完整的解决方案是:

.selector-for-image {
  pointer-events: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

请参阅updated JSFiddle