【发布时间】:2015-03-17 04:07:56
【问题描述】:
首先,我的开发环境是 Chrome/Safari,带有 Eclipse Luna 和 OSX Yosemite 上的 Super Dev Mode。
我对这个小部件有点时间。我创建了许多扩展基本上传小部件的上传小部件(图像、音频、视频等)。图像上传在初始化时调用 FileUpload.click() ,这在显示的文件对话框中按预期工作。但是,对于音频和视频上传,我需要用户从 SuggestBox 中选择一个选项,然后一旦做出选择,应该触发 FileUpload.click() (我已经有适当的事件处理程序等)。最后一点不起作用,或者似乎没有,因为我没有显示文件对话框。我已经跟踪了 SuperDevMode 中的代码执行,并且 FileUpload.click() 确实似乎被触发了(执行移过这一点并且没有引发错误/异常),但我不能,因为我的一生都无法获得要显示的对话框。 FileUpload 元素没有隐藏/禁用(它曾经是“屏幕外”,但我更改了它以确保这不是问题)。
可能是什么原因造成的 - 可能是操作系统/浏览器问题,而不是 GWT 问题?
更新
我决定向 FileUpload 小部件添加一个 ClickHandler,该小部件在触发时会简单地写入控制台。通过这两种机制,上传小部件被“点击”,所以我真的不知道下一步该去哪里。有趣的是,如果我从音频上传中删除 SuggestBox 并仅调用 click 函数,我确实会收到弹出窗口,但我不明白为什么这会干扰点击(如果存在)。
已解决
解决了。因此,似乎只有当触发它的事件是 ClickEvent 时,尝试以编程方式触发 FileUpload 点击当前才有效。为了解决这个问题,我必须创建自己的原生点击事件,并在用户从 SuggestBox 中进行选择时触发该事件。这是预期的行为吗?
【问题讨论】: