Javascript:模拟<input type =“file”/>中的单击

时间:2010-12-15 15:31:12

标签: javascript

美好的一天,

我正在尝试模拟浏览文件元素上的点击,但我无法使其正常工作。

我发现了这个: 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.');">

但当我尝试将其更改为'file'时:

<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 个答案:

答案 0 :(得分:4)

这是一个安全限制,可以防止恶意javascript从用户计算机上传文件,而不需要他或者通过打开文件选择对话框来欺骗他。你不能在javascript中做到这一点,它不是一个bug,它是一个功能。

答案 1 :(得分:0)

这也取决于你为什么需要这个?如果这是出于测试目的,您可以使用一些现有的框架,如FuncUnit:

http://www.beletsky.net/2010/12/functional-testing-by-javascript-with.html