我想触发隐藏的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(以及可能的其他浏览器)中实现相同的目标?
答案 0 :(得分:1)
解决方案可以在这里阅读:
http://www.quirksmode.org/dom/inputfile.html
在最后一段:
click()方法允许您 模拟表单字段上的单击。 复选框切换,无线电 选中,依此类推。不幸 Mozilla和Opera没有添加这个 文件上传字段的方法。我想知道 为什么,添加它不是真的 安全风险,因为最糟糕的可能 发生的是文件选择 窗口弹出。
答案 1 :(得分:0)
你试过直接调用onClick()方法吗?
答案 2 :(得分:0)
click方法目前正在FF 4中实现。正在讨论将实现哪些安全规则,听起来它类似于Window.open,必须是用户操作的直接结果而不是计时器或负载。