0

PCから画像をアップロードしています。Firefox では問題なく動作していますが、Chrome ではファイルを選択するダイアログが開きません。Javascriptでinput型のクリックイベントを呼び出しています。

これが私がやっていることです:

<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 に答える