我在我的应用程序上使用SmartGWT,在尝试从浏览器中获取事件时遇到了一些问题.我需要获取ONPASTE事件,但是当我尝试使用它时,onBrowserEvent方法甚至不会被调用.
这是我正在使用的代码.
import com.google.gwt.user.client.Event; import com.smartgwt.client.widgets.RichTextEditor; public class CustomRichTextEditor extends RichTextEditor { public CustomRichTextEditor() { super(); sinkEvents(Event.ONPASTE); } @Override public void onBrowserEvent(Event event) { super.onBrowserEvent(event); System.out.println("Event.getTypeInt: " + event.getTypeInt() + " - Event.getType: " + event.getType()); switch (event.getTypeInt()) { case Event.ONPASTE: System.out.println("Paste Detected"); break; } } }
有谁能够帮我?
解决方法
RichTextEditor actualy do not attach to any input elements. And use textarea element like a container for transport only. It doenst subscribe to events like ONPASTE at all.
这个问题在gwt google group年首次被问到.好人Brandon Donnelson发现了为什么这不起作用以及如何解决它.
Here is工作gwt示例使用自定义RichTextEditor(在5个类中大约约300行代码并且不认为粘贴它在这里是个好主意),它将事件bindind添加到RichTextEditor并允许ONPASTE和其他一些事件工作.它的工作原理如下:
附:另外请记住,这个RichTextEditor奇怪的行为在2011年11月被提交为bug.但是仍然没有修复原始代码.