2013-09-10 4 views
1

Я пытаюсь использовать диалоговое окно CKEditor в GWT внутри связующего интерфейса. Я сделал следующееИспользование диалогового окна CKEditor в GWT UIBinder

В модуле 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 выполняет мои цели e и должен использоваться в соответствии с требованиями заказчика.

ответ

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(); 

Я думаю, что браузер не в правильном объеме.

0

Вы должны предварять переменную CKEditor с $ WND:

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

От docs:

При доступе окна и объекты документа в браузере от JSNI, вы должны ссылаться на них в $ WND и $ doc, соответственно. Скомпилированный скрипт выполняется во вложенном фрейме, а $ wnd и $ doc автоматически отправляются , чтобы правильно ссылаться на окно и документ главной страницы.