如何将剪切/粘贴(通过jsni)方法注册到RichTextArea
How to register cut/paste (by jsni) method to RichTextArea?
以下代码用于将属性样式设置为body元素,并向其注册剪切/粘贴代码,但失败了。奇怪的是,在调试时,变量body
不为空,并且属性";风格";存在,但框架没有这个孩子。运行工作没有按预期工作,并且NPE在调用setBodyContent()
时被抛出。
public class TextAreaExt extends RichTextArea
{
private BodyElement body;
@Override
protected void onLoad()
{
super.onLoad();
body = ((FrameElement) getElement().cast())
.getContentDocument().getBody();
body.setAttribute("style", "color:gray;");
registerOnCut(body);
}
public void setBodyContent(String text)
{
body.setInnerText(text);
}
private native void registerOnCut(BodyElement element) /*-{
var that = this;
console.log("registerOnCut");
element.oncut = $entry(function(event) {
//invoke method to adjust height based on content
return false;
});
element.onpaste = $entry(function(event) {
//invoke method to adjust height based on content
return false;
});
}-*/;
}
不要调用onLoad
方法来初始化主体,而是使用addInitializeHandler
进行初始化。
this.addInitializeHandler(new InitializeHandler() {
@Override
public void onInitialize(InitializeEvent event) {
body = ((FrameElement)getElement().cast()).getContentDocument().getBody();
registerOnCut(body);
}
});
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- GWT:可以从外部JavaScript而不是JSNI调用Java方法吗
- 如何将剪切/粘贴(通过jsni)方法注册到RichTextArea
- 如何在纯Java环境中处理JSNI方法
- 将Java回调函数传递给JSNI方法
- 从 JSNI 调用 Java 方法
- GWT JSNI 方法与本机 JS:“无效标签”
- 使用GWT'从java方法获取返回值;s JSNI
- 如何从GWT中的JSNI方法调用JSNI方法
- GWT JSNI -调用特定对象的java方法
- GWT JSNI方法公开
- 使用JSNI从手写的Javascript调用JAVA方法