0

我正在从我的电脑上传一张图片。它在 Firefox 中运行良好,但在 Chrome 中,选择文件的对话框没有打开!我在 Javascript 中调用输入类型的点击事件。

这是我正在做的事情:

<input type="file" id="fileElem" accept="image/*" style="display:none" >
<div id="fileSelect" class="drop-area">Select some files</div>

这是Javascript:

var fileSelect = document.getElementById("fileSelect"),
fileElem = document.getElementById("fileElem");

  
fileElem.addEventListener("click",function(e){
  var files = this.files
  handleFiles(files)
},false)  
  
  
fileSelect.addEventListener("click", function (e) {
    fileElem.click();
  e.preventDefault(); 
}, false);
4

1 回答 1

2

<input type="file">据我所知,没有浏览器可以让您在没有用户干预的情况下模拟点击本身。原因是安全。浏览器要求用户在页面某处进行显式手动点击(用户发起的点击)。但是,一旦发生这种情况,就很容易劫持点击并将其路由到文件输入。这就是你想要做的。

请参阅我关于该主题的 blob 帖子。它有一个应该可以工作的演示: http: //ericbidelman.tumblr.com/post/14636214755/making-file-inputs-a-pleasure-to-look-at

于 2012-07-20T21:40:12.697 回答