在IE中打开浏览窗口,点击文件输入

Open browse window in IE on single click file input

本文关键字:文件 输入 窗口 浏览 IE      更新时间:2023-09-26

我在使文件输入按我想要的方式工作方面遇到了一些麻烦。文件元素由两部分组成,文本框和浏览按钮。在IE以外的其他浏览器中,单击其中任何一个都会打开一个窗口,您可以在其中选择文件。然而,在IE中,它只在我点击浏览按钮时打开。如果我点击旁边的文本框,我必须双击才能打开窗口。是否有一种方法来解决这个与javascript,所以一个单一的点击文本框也会打开窗口?我试了下面的方法,但没有用。(代码比实际示例简化了很多)

Html:<input id="file" name="file" type="file"/>

JS/jQuery:
$("#file").click(function(){
    $(this).trigger("dblclick");
});
$("#file").dblclick(function(){
    alert("Double");
});

现在上面的代码提醒"Double",但不打开窗口。有办法解决这个问题吗?

由于整个控件是浏览器原生的(并且从未公开为文本框加按钮),因此您根本无法访问允许您调用上传按钮的方法/事件。我认为这主要是为了避免网站欺骗用户上传非预期的文件。

如果你能设法花一点时间来实现一个解决方案,这就能创建一个更容易管理的上传组件。我敢肯定,谷歌一下就会列出很多其他的例子,告诉你如何设置文件上传组件的样式。

刚刚在IE6 (http://jsfiddle.net/SUWRK/)上用JSFiddle测试了你的代码,根据我的理解,它可以像你期望的那样工作…警告显示在单个点击事件(请注意,在IE中捕获dblclick事件是很棘手的)9 -参见https://gist.github.com/399624)。

你确定在更大的代码集上没有别的事情发生吗?