7

我在我的应用程序上使用 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;
        }
    }

}

有谁能够帮助我?

4

1 回答 1

5

RichTextEditor 实际上不附加到任何输入元素。并使用 textarea 元素(如容器)仅用于运输。它根本不订阅像 ONPASTE 这样的事件。

这个问题首先是在gwt google group中提出的。好人 Brandon Donnelson 发现了为什么这不起作用以及如何解决它。

这是使用自定义 RichTextEditor 的工作 gwt 示例(大约 5 个类中的约 300 行代码,并且不认为在此处粘贴它是个好主意),它将事件绑定添加到 RichTextEditor 并允许 ONPASTE 和其他一些事件起作用。它的工作原理如下:

在此处输入图像描述

ps 另外请记住,这个 RichTextEditor 奇怪的行为是在 2011 年 11 月作为 bug 提交的。但在原始代码中仍未修复。

于 2015-12-16T08:09:22.300 回答