在 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');
。
我想在 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');
。