Javascript 在iframe中单击不会触发firefox中的文件上载对话框

Javascript 在iframe中单击不会触发firefox中的文件上载对话框,javascript,firefox,iframe,file-upload,postmessage,Javascript,Firefox,Iframe,File Upload,Postmessage,我有一个有点复杂的场景。 我正在为一个POC做一些研究,最终的目标是在支持IE9的同时跨域上传文件 我的网页上写着: 在以下位置加载iframe: 第二个页面(在iframe中)有一个文件输入元素,正在侦听post消息事件 当在“ui”页面(在第一个域中)上单击一个按钮时,该页面将向iframe发送一条消息,iframe反过来调用如下内容: var upload = document.getElementById("fileupload"); upload.click(); 或 这两

我有一个有点复杂的场景。 我正在为一个POC做一些研究,最终的目标是在支持IE9的同时跨域上传文件

我的网页上写着:

在以下位置加载iframe:

第二个页面(在iframe中)有一个文件输入元素,正在侦听post消息事件

当在“ui”页面(在第一个域中)上单击一个按钮时,该页面将向iframe发送一条消息,iframe反过来调用如下内容:

var upload = document.getElementById("fileupload");

  upload.click();

这两个例子在Chrome(37)中都很好地工作,文件上传对话框打开,我可以从我的计算机中选择一个文件

然而,在Firefox(31)中,这不起作用。没有错误或任何东西,但是点击触发没有任何作用。在我刚刚升级到的FF 32中,我收到一条消息说,尽管我允许此域的弹出窗口,但弹出窗口被阻止

顺便说一下,iframe是否隐藏并不重要

这是非常令人沮丧的,因为似乎没有什么我可以做的代码明智的工作围绕它

有人知道如何解决这个问题吗


谢谢

我们可以访问iframe中不同域中的元素吗?不,浏览器禁止跨域访问
 var upload =  document.getElementById("fileupload");
 var evt = document.createEvent("HTMLEvents");

  evt.initEvent("click", true, true);

  upload.dispatchEvent(evt);