2016-04-15 12 views
4

最近、xpagesの標準リッチテキストエディタがAndroid搭載端末で動作していないことに気付きました。AndroidでRichtext/CKエディタが動作しない

私は単一のリッチテキストフィールドを持つ簡単なxpageを作っています。 SafariでiPhoneのページを見ると、PcのChromeでもうまく動作します。しかし、私がクロムのデバイスエミュレーションを見ると、アンドロイドを使用するデバイスのほとんどがCKエディタをレンダリングしません。単なるテキストエリアが表示されます。

私は9.0.1 FP2を使​​用しています。

AndroidでCKエディタを使用するには、何が必要ですか?

答えて

10

これはCKeditor自体の問題です。検出されたユーザーエージェント文字列に基づいて、検出されたブラウザがCKEditorと互換性があるかどうかを判断するコードを実行します。そのコードがfalseを返した場合、CKEditorはロードされません。これは、v4.4以降(v5とv6を含む)を使用するすべてのAndroid搭載端末で発生しているようです。 tracking siteにログに記録されたバグがありました。 CKEditor v4.5に修正が提供されたようです。現在9.0.1FP5は、修正が入る前にCKEditor v4.4.6を使用します。

私はthis SQ questionを見てから、バグを回避するための回避策を実装しました。

<script><![CDATA[ 
    XSP.addOnLoad(function(){ 
     if(typeof(CKEDITOR) !== "undefined"){ 
      CKEDITOR.env.isCompatible = true; 
     } 
    });]]> 
</script> 

あなたもCSJSスクリプトライブラリとしてそれを追加することができ、そして、すべてのインスタンスを確実にするために、あなたのテーマにそのライブラリを追加します。それは検出し何ブラウザに関係なくロードするようにCKEditorバージョンを強制的にあなたのXPageに次のスクリプトを追加します。アプリ全体のCKEditorはAndroidで読み込みます。

(リンクされたSOの質問は、IE7以前ではCKEditorが無効になっていることを確認することを示しています)。

+0

動作するようには思えおかげブライアン、私は読み取りモードでページを読み込むとき、私は今、 にReferenceErrorを得る:XSP.addOnLoad(関数(){ \t(typeof演算(CKEditorバージョンの場合:CKEditorバージョンは、私はそれを解決し –

+2

が定義されていません。 !)== "未定義"){ \t \t CKEDITOR.env.isCompatible =真; \t}} ) –

+1

ああ、おかげでトーマスは、私は私の答えに –

関連する問題