我正在尝试在UI绑定器中的GWT对话框中使用CKEditor。 我已经完成了以下工作
包含在模块 html 文件中
<script src="ckeditor/ckeditor.js"></script>
包含在 UI 绑定器 XML 文件中
<textarea class="ckeditor" id="editor1" rows="5" cols="15"></textarea>
包含的 UI 绑定程序 JAVA 文件
public static native void loadckeditor()
/*-{
CKEDITOR.replace( 'editor1' );
}-*/;
我得到的错误是"未定义 CKEDITOR"我不是JS专家,但CKEDITOR满足了我的全部功能,并按照客户规范使用。
尝试使用 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不在正确的范围内。
CKEDITOR 变量前面加上$wnd:
$wnd.CKEDITOR.replace( 'editor1' );
从文档中:
从 JSNI 访问浏览器的窗口和文档对象时, 必须将它们分别引用为 $wnd 和 $doc。您的编译 脚本在嵌套帧中运行,$wnd和$doc会自动运行 已初始化以正确引用主机页的窗口和文档。