2013-07-16 34 views
1

我有以下HTML:觸發一個輸入文件點擊不將文件上傳對話框

<form method="post" action="/link" style="position:absolute; left:-1000px;"> 

    <input type="file" name="gameUpload" id="gameUpload" /> 

</form> 

我想上傳功能,在HTML整合到統一。

這個想法是當在Unity引擎中點擊一個按鈕時,它會調用一個javascript函數,並且js函數將觸發文件輸入元素的點擊。

這在Firefox和IE10,IE9和IE8中運行得非常好。但它不適用於Chrome和Safari。

的JS代碼:

function uploadImage(){ 

jQuery("#gameUpload").trigger("click"); 

} 

我想有一個「跨度」有一些文字,並試圖觸發被點擊的文本文件時輸入的點擊,這工作得很好。

而且,我做了以下檢查點擊是否被觸發:

jQuery("#gameUpload").unbind("click").bind("click",function(){ 
    alert("I am open"); 
}); 

顯然,點擊是越來越觸發,因爲我收到警報,但該文件對話框是沒有得到開放。

+1

沒有做不到的,這是一個安全噩夢...... – dandavis

回答

0

我不熟悉Unity中的HTML,但我不認爲你需要JS。

只要包含<input type="file" name="gameUpload" id="gameUpload" />應該允許瀏覽器打開一個對話窗口。

+0

對用戶不可見,這就是爲什麼我試圖通過js代碼觸發它。 – Ananth

+1

出於安全原因,您無法僞造* real * user點擊需要打開文件對話框,但在Chrome中,您可以使用標籤點擊隱藏的輸入[type = file]。 – dandavis

+0

是的,我嘗試通過標籤觸發點擊,它工作,這就是爲什麼我去這個方法。無論如何,謝謝。 – Ananth

0

使用jQuery,只是這樣做:

$('#imageUpload').click(); 
// or get the HTMLElement 
$('#imageUpload').get(0).click(); 

使用html只有(我們知道,與屬性將專注於表單元素的默認行爲使標籤)

<label for="imageUpload">Upload File!</label> 
<input id="imageUpload" type="file" style="display:none"/> 
相關問題