在 GWT 文本框中捕获粘贴的文本

Capture pasted text in GWT Textbox

我想在 GWT 中处理粘贴事件和 捕获粘贴的文本 TextBox。正如我所检查的那样,TextBox 中没有粘贴事件的标准处理程序。

我发现可以添加一点 javascript 本机代码:

public class PasteAwareTextBox extends TextBox {

    public PasteAwareTextBox() {
        super();
        sinkEvents(Event.ONPASTE);
    }

    @Override
    public void onBrowserEvent(Event event) {
        super.onBrowserEvent(event);
        switch (event.getTypeInt()) {
        case Event.ONPASTE:
            onPasted(getClipboardData(event));
            break;
        }

    }

    private void onPasted(String clipboardData) {
        System.out.println("Pasted:" + clipboardData);
    }

    private static native String getClipboardData(Event event) /*-{
        return event.clipboardData.getData('text/plain'); 
    }-*/;

}

1) 订阅粘贴事件。

2) 通过JSNI调用event.clipboardData.getData('text/plain');