JavaScript:模拟在<input type="file">中点击

3

您好,

我试图模拟点击浏览文件元素,但是我无法使其工作。

我找到了这个链接:http://www.randomsnippets.com/2008/03/05/simulate-a-button-click-via-javascript/

并尝试使用它来模拟'button'和'submit'类型的点击,成功了:

<input type="checkbox" onClick="document.getElementById('theSubmitButton').click();">Check the box to simulate a button click
<input type="submit" name="theSubmitButton" id="theSubmitButton" value="Button" onClick="alert('The button was clicked.');">

但是当我尝试将其更改为“文件”类型时:
<input type="checkbox" onClick="document.getElementById('theSubmitButton').click();">Check the box to simulate a button click
<input type="file" name="theSubmitButton" id="theSubmitButton" value="Button" onClick="alert('The button was clicked.');">

在Firefox和IE8中无法正常工作。但是在Google Chrome中,文件浏览器窗口可以显示出来。

这种方法存在问题吗?我该如何让它在FF和IE8中正常工作呢?

非常感谢!

2个回答

5

这是一种安全限制,以防止恶意JavaScript上传用户计算机中的文件,而用户并不想要或被欺骗通过打开文件选择对话框来上传文件。你无法在JavaScript中实现它,这不是一个错误,而是一种功能。


2
只是给这个答案添加了一条:如果您需要在随机时间打开文件对话框-您可以使用基于Flash的上传器。 - bezmax
安全性,特征 - user445786

0

谢谢回复。我只是想减少用户必须点击的次数,但我想我做不到。感谢您提供的链接,也许我将来会用到它。 :) - srcastro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接