我正在尝试在UI绑定器中的GWT对话框中使用CKEditor。我做了以下
包含在模块html文件中
<script src="ckeditor/ckeditor.js"></script>
包含在UI活页夹XML文件
中<textarea class="ckeditor" id="editor1" rows="5" cols="15"></textarea>
包含的UI Binder JAVA文件
public static native void loadckeditor()
/*-{
CKEDITOR.replace( 'editor1' );
}-*/;
我得到的错误是“CKEDITOR未定义” 我不是JS的专家,但CKEDITOR履行我的全部功能,并按照客户的规格使用。
答案 0 :(得分:0)
尝试使用ScriptInjector: http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/ScriptInjector.html
ScriptInjector.fromUrl("http://example.com/foo.js").setCallback(
new Callback() {
public void onFailure(Exception reason) {
Window.alert("Script load failed.");
}
public void onSuccess(Void result) {
// insert code to setup the CKEditor
}
}).inject();
我认为javascript的范围不正确。
答案 1 :(得分:0)
您需要在$ wnd:
前加上CKEDITOR变量$wnd.CKEDITOR.replace( 'editor1' );
来自docs:
从JSNI访问浏览器的窗口和文档对象时, 你必须分别将它们引用为$ wnd和$ doc。你的编译 脚本在嵌套框架中运行,$ wnd和$ doc是自动的 初始化为正确引用主页的窗口和文档。