在GWT UIBinder对话框中使用CKEditor

时间:2013-09-10 17:31:25

标签: javascript gwt ckeditor

我正在尝试在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履行我的全部功能,并按照客户的规格使用。

2 个答案:

答案 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是自动的   初始化为正确引用主页的窗口和文档。