2016-04-15 156 views
4

我最近注意到xpages中的標準richtext編輯器在Android設備上無法正常工作。Richtext/CK編輯器不適用於Android

我用一個richtext字段做了一個簡單的xpage。當我在safari上查看iPhone中的頁面時,它可以正常工作,也可以在PC上使用Chrome。但是,如果我在chrome中查看設備仿真,則大多數使用android的設備都不會渲染CK編輯器。只顯示一個簡單的文本區域字段。

我正在使用9.0.1 FP2。

我需要做些什麼才能讓CK編輯器在Android上工作?

回答

10

這是CKeditor本身的問題。它運行一些代碼,根據檢測到的用戶代理字符串確定檢測到的瀏覽器是否與CKEditor兼容。如果該代碼返回false,則不加載CKEditor。這似乎發生在使用v4.4或更高版本(包括v5和v6)的任何Android設備上。有一個記錄在他們的tracking site的bug。它看起來像一個修復被交付給CKEditor v4.5。目前9.0.1FP5使用CKEditor v4.4.6,在修復之前。

看過this SQ question後,我已經實施瞭解決該問題的解決方法。將以下腳本添加到XPage強制的CKEditor加載不管它檢測到的瀏覽器:

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

你甚至可以將其添加爲一個CSJS腳本庫,和該庫添加到您的主題,以確保所有情況下, CKEditor貫穿您的Android應用程序加載。

(請注意,鏈接的SO問題建議進行檢查以確保CKEditor在IE7及更低版本上保持禁用狀態)。

+0

感謝布賴恩,似乎工作,但是當我加載在讀模式下頁面我現在得到 的ReferenceError:CKEDITOR沒有定義 –

+2

我解決了它:XSP.addOnLoad(函數(){ \t如果(typeof運算(CKEDITOR !)== 「未定義」){ \t \t CKEDITOR.env.isCompatible = TRUE; \t}} ) –

+1

啊,感謝托馬斯,我補充說,我的回答 –

相關問題