8

我正在为工作创建一个内部 CMS,重要的是所有页面都适合移动设备。当您从手机查看安装了 CKEditor 4.4.7 的页面时,编辑器显示为普通文本区域,其中的 HTML 或文本均未正确格式化。

我可以使用手机的浏览器请求桌面版本,有时这会起作用。在不同的手机上似乎很容易发生意外。我不相信它与启用 JavaScript 有任何关系。

抱歉缺乏技术细节 - 有没有人有过这方面的经验?

谢谢。

编辑 - -

找到了。我目前正在通过创建一个普通的文本区域然后添加这个 javascript 来调用编辑器,它会在给定 ID 的情况下替换它:

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

好吧,经过一些广泛的挖掘,我发现您可以自动调用它加载到“兼容”中的任何浏览器,即使它不一定安全或真实,只需添加如下更改代码:

  <script type="text/javascript">   

 CKEDITOR.env.isCompatible = true; 

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

我编辑了这个,以防万一有人遇到同样的问题。不知道如何结束这个问题。我太新太笨了。

4

2 回答 2

11

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

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

但是,您可以通过将CKEDITOR.env.isCompatible标志更改为 来启用 CKEditor 是不受支持的环境(风险自负)true,这会导致 CKEditor 在所有环境中加载,包括不受支持的环境。但是请注意,这有一个缺点:它不仅在现代移动设备中启用了 CKEditor,而且还尝试在它不再工作的旧 Internet Explorer 版本(6&7)中加载它(这可能会导致一定程度的用户挫败感)。因此,在使用此解决方案时,建议仍将旧 IE 列入黑名单,如下所示:

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

您可以在不受支持的环境中启用 CKEditor文章中了解更多信息。

重要说明:CKEditor 4.5 即将更改此机制,这是即将发布的下一个主要版本。工单#13316从一个名单更改CKEDITOR.env.isCompatible为一个黑名单,这有望帮助解决此类问题。

于 2015-06-12T06:32:14.867 回答
1

这里的解决方案只需要将您的 ckeditor.js 文件更改或更新为最新的 ckeditor.js 文件

这里是最新 ckeditor.js 的链接

这里截图

在此处输入图像描述

于 2016-08-11T08:13:44.423 回答