2015-11-10 171 views
0

我在我的網站輸入和其他普通按鈕文件:打開文件對話框不開放

<input type="file" id="myid_upload_background_input" onClick="testClick();"/> 

當按鈕被cliked,以下的功能由myid_templates_editor_open_file_dialog('myid_upload_background_input');

function myid_templates_editor_open_file_dialog(elemId) 
{ 
    var elem = document.getElementById(elemId); 
    if(elem && document.createEvent) {   
     var evt = document.createEvent("MouseEvents"); 
     evt.initEvent("click", true, false); 
     elem.dispatchEvent(evt);    
    } 
} 

function testClick(){ 
    alert('Click event is invoked in an input file.'); 
}    

調用運行後該程序通過單擊正常按鈕,它會顯示消息Click event is invoked in an input file.這意味着輸入文件的單擊事件已成功創建,但爲什麼打開的文件對話框無法打開?

+0

出於安全原因,你不能做到這一點。 – SLaks

+0

@SLaks - >爲什麼?我以前做過。 – Qerjiuthn

+0

如何?並在什麼瀏覽器和版本? – SLaks

回答

0

嘗試input type="file"元素調用.click()onclick處理程序中button元素

document.getElementById("button").onclick = function() { 
 
    document.getElementById("upload").click() 
 
} 
 

 
function testClick() { 
 
    console.log("Click event is invoked in an input file."); 
 
}
<button id="button">Click here</button> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<input type="file" id="upload" onclick="testClick()" />