1

我正在尝试在 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 实现了我的全部功能,并根据客户规范使用。

4

2 回答 2

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不在正确的范围内。

于 2013-09-10T19:13:57.920 回答
0

您需要在 CKEDITOR 变量前面加上 $wnd:

$wnd.CKEDITOR.replace( 'editor1' );

文档

从 JSNI 访问浏览器的窗口和文档对象时,您必须分别将它们引用为 $wnd 和 $doc。您编译的脚本在嵌套框架中运行,并且 $wnd 和 $doc 会自动初始化以正确引用主机页面的窗口和文档。

于 2014-01-10T18:32:10.117 回答