2

我想触发对隐藏 FileUpload 小部件上的浏览按钮的点击。以下代码在 IE 6+ 上运行良好,但在 FireFox 中不起作用。

final FileUpload upload = new FileUpload(); 

upload.setVisible(false);
upload.setName("uploadFormElement"); 
panel.add(upload);

panel.add( new Button("Select File", new ClickListener()
{ public void onClick(Widget pSender) 
{ jsClickUpload( upload.getElement() ); } }));

native void jsClickUpload( Element pElement ) /*-{ pElement.click(); }-*/; 

如何在 FireFox(可能还有其他浏览器)中实现相同的功能?

4

3 回答 3

1

解决方案可以在这里阅读:

http://www.quirksmode.org/dom/inputfile.html

在最后一段中:

click() 方法允许您模拟对表单字段的单击。复选框被切换,收音机被选中,等等。不幸的是,Mozilla 和 Opera 没有将此方法添加到文件上传字段。我想知道为什么,添加它并不是真正的安全风险,因为可能发生的最坏情况是弹出文件选择窗口。

于 2009-03-11T12:45:40.103 回答
0

您是否尝试过直接调用 onClick() 方法?

于 2009-03-10T23:38:01.060 回答
0

click 方法目前正在 FF 4 中实现。正在讨论将实现哪些安全规则,听起来它类似于 Window.open 并且必须是用户操作的直接结果,而不是定时器或负载。

于 2010-10-05T17:41:29.567 回答