我在我的应用程序上使用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;
}
}
}
有人能帮助我吗?
答案 0 :(得分:5)
RichTextEditor实际上不会附加到任何输入元素。并且只使用textarea元素作为容器进行传输。它总是订阅像ONPASTE这样的事件。
这个问题首先在gwt google group中提出。好人Brandon Donnelson发现了为什么这不起作用以及如何解决它。
Here is使用自定义RichTextEditor工作gwt示例(在5个类中大约约300行代码并且不认为在此处粘贴它是个好主意),它将事件bindind添加到RichTextEditor并允许ONPASTE和其他一些事件工作。它的工作原理如下:
P.S。另外请记住,这个RichTextEditor奇怪的行为在2011年11月被提交为bug。但仍未修复原始代码。