如何用javascript模拟文件选择?

如何用javascript模拟文件选择?,javascript,Javascript,我试图以编程方式模拟用户单击html元素类型input:file将文件上载到firefox浏览器上带有javascript的网站。 我的javascript文件中的以下javascript代码模拟并打开文件对话框: var target_element; var dispatchMouseEvent = function(target, var_args) { var e = document.createEvent("MouseEvents"); e.initEvent.a

我试图以编程方式模拟用户单击html元素类型input:file将文件上载到firefox浏览器上带有javascript的网站。 我的javascript文件中的以下javascript代码模拟并打开文件对话框:

var target_element; 
var dispatchMouseEvent = function(target, var_args) { 
    var e = document.createEvent("MouseEvents");
    e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));
    target.dispatchEvent(e); 
};

target_element = window.content.document.getElementById("DivElement");
dispatchMouseEvent(target_element, 'mouseover', true, true);
dispatchMouseEvent(target_element, 'mousedown', true, true); 
dispatchMouseEvent(target_element, 'mouseup', true, true); 
dispatchMouseEvent(target_element, 'click', true, true);

但是,我找不到一种方法,可以像用户选择文件并单击“文件”对话框的“打开”按钮那样,以编程方式模拟在“文件”对话框上选择文件。用javascript可以做到这一点吗?

这是不可能的,这是有充分理由的。如果您可以在客户端自动选择文件,您将打开大规模安全和隐私漏洞的大门。

以下是javascript文件中的javascript代码:如果您正在寻找自动测试,看看这个问题,这些工具可能能够模拟这一点;谢谢你的回答。那么,是否可以在不打开文件对话框的情况下使用javascript提交/上载文件?我可以看到一些像iMacros这样的应用程序,它们可以模拟上传到网站上的文件,没有任何问题。所以我想应该可以用javascript来实现这一点?想象一下,一些随机编码者可以从你的电脑中获取任何文件,并在你没有注意到的情况下上传,因此出于安全原因,如果用户不这样做,你就不能上传。我想这是一个误解。我说的是在用户上下文端即客户端浏览器上运行的javascript,而不是从服务器端运行的javascript。在这种情况下,您希望如何解决安全问题?Mozilla firefox有大量的库来访问文件系统,我开发了大量的脚本来访问文件系统,完全没有安全问题。用户所做的任何事情都可以通过编程完成,在我的例子中,问题是打开了一个文件对话框,因此我找不到使用javascript引用此文件对话框的方法。@Alex你是说在插件中?不需要插件,甚至不需要jquery,纯javascript可能可以解决这个问题。我想测试是否可以使用javascript引用文件对话框。有一个Mozilla模块接口来引用文件对话框,但不幸的是,我无法引用打开的文件对话框。但我想可以通过编程方式将所选文件发送到“文件”对话框。