1

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は私の機能全体を満たし、顧客の仕様に従って使用されます。

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 に答える