gwt fileupload

时间:2009-03-10 23:18:12

标签: gwt file-upload

我想触发隐藏的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(以及可能的其他浏览器)中实现相同的目标?

3 个答案:

答案 0 :(得分:1)

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

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

在最后一段:

  

click()方法允许您   模拟表单字段上的单击。   复选框切换,无线电   选中,依此类推。不幸   Mozilla和Opera没有添加这个   文件上传字段的方法。我想知道   为什么,添加它不是真的   安全风险,因为最糟糕的可能   发生的是文件选择   窗口弹出。

答案 1 :(得分:0)

你试过直接调用onClick()方法吗?

答案 2 :(得分:0)

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