2015-06-11 96 views
4

我正在创建一个内部CMS以进行工作,所有页面都必须移动设备非常重要。当您使用手机安装CKEditor 4.4.7查看页面时,编辑器将显示为正常的textarea,并且其中的HTML或文本都没有正确格式化。CKEditor 4.4.7没有显示在任何移动浏览器

我可以使用手机的浏览器请求桌面版本,有时这可以工作。在不同的手机中,它似乎相当不错。我不相信这与启用JavaScript有什么关系。

对不起,没有技术细节 - 有没有人有过这方面的经验?

谢谢。

编辑---

找到它。

<script type="text/javascript">  
    $(document).ready(function() { 
    $('textarea#SomeIDHere').ckeditor(); 
}); 
    </script> 

嗯,有些广泛挖掘后,我发现,你可以自动调用任何浏览器,它的加载:我目前通过创建一个普通的文本区域,然后将这个JavaScript它取代它给出一个ID调用编辑器到“兼容”,尽管它不一定是安全的或真实的,仅仅通过增加改变代码为这样:

<script type="text/javascript"> 

CKEDITOR.env.isCompatible = true; 

    $(document).ready(function() { 
    $('textarea#SomeIDHere').ckeditor(); 
}); 
    </script> 

我编辑了这个以防万一有谁遇到了同样的问题。不知道如何关闭这个问题。我太新奇了。

回答

6

一般来说,CKEditor 与Android和iOS兼容的Chrome。如果它没有出现在这些环境中,这通常是环境检测机制被浏览器用户代理字符串误导的问题。

直到版本4.4.7(实际上,4.4.8,但该版本尚未发布)CKEditor仅加载到白名单环境中(如env.js文件中定义)。最初的目的是阻止CKEditor出现在不受支持的环境中。但是,浏览器检测机制并不完美,尤其是在浏览器供应商倾向于欺骗用户代理字符串的移动设备上,导致您描述的问题。

但是,您可以通过将CKEDITOR.env.isCompatible标志更改为true来使CKEditor在不受支持的环境中(风险自负),这会导致CKEditor在所有环境(包括不支持的环境)中加载。但是,请注意,这有一个缺点:它不仅使CKEditor在现代移动设备中出现问题,而且还尝试将其加载到旧版IE浏览器(6 & 7)中,该版本不再有效(这可能会导致某种程度的用户沮丧)。因而,使用该解决方案时,建议还是黑名单老的IE,就像这样:

// Enable CKEditor in all environments except IE7 and below. 
if (!CKEDITOR.env.ie || CKEDITOR.env.version > 7) 
    CKEDITOR.env.isCompatible = true; 

您可以阅读Enabling CKEditor in Unsupported Environments文章更多地了解它。

一个重要注意事项:CKEditor 4.5这个机制即将发生变化,这是即将发布的下一个主要发现。票#13316CKEDITOR.env.isCompatible从whilet列表更改为黑名单,这将有望帮助解决像这样的问题。

+0

我忘了检查回来,对不起。感谢您的回复。这肯定是我找到的解决方法的一个改进。 – TRose

相关问题