触发输入文件单击不会带来文件上载对话框

时间:2013-07-16 23:24:23

标签: javascript jquery unity3d

我有以下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"); 

}

我尝试使用带有一些文本的“span”并尝试在单击该文本时触发文件输入的单击,这样可以正常工作。

另外,我做了以下检查是否触发了点击:

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

显然,点击会被触发,因为我收到警报但文件对话框没有被打开。

2 个答案:

答案 0 :(得分:0)

我不熟悉Unity中的HTML,但我认为你不需要JS。

只包括<input type="file" name="gameUpload" id="gameUpload" />应该允许浏览器打开一个对话窗口。

答案 1 :(得分:0)

使用jQuery,只需执行此操作:

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

仅使用html(我们知道,带有for属性的标签会集中表单元素的默认操作。)

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