CKEditor 4.4.7在任何移动浏览器上都无法显示。

9
我正在为工作创建一个内部 CMS,所有页面都必须支持手机浏览。使用安装了 CKEditor 4.4.7 的手机查看页面时,编辑器显示为普通文本框,其中的HTML或文本没有得到正确格式化。
我可以使用手机浏览器请求桌面版本,有时候这样会起作用。不同型号的手机上,效果可能会有所差异。我认为这与启用 JavaScript 没有任何关系。
抱歉缺乏技术细节说明 - 有没有人遇到过这种情况?
谢谢。
编辑---
找到原因了。我目前是通过创建普通文本区域并添加以下JavaScript来调用编辑器:
  <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>

我修改了这个问题,以防其他人遇到同样的问题。不确定如何关闭问题。我太新手了,不懂。


你好吗?请回答我的问题:https://stackoverflow.com/questions/71813191/ckeditor-4-18-0-does-not-want-to-display-on-phone-browsers-anymore,我需要帮助。 - Richardson
2个回答

12

一般而言,CKEditor与iOS以及安卓设备上的Chrome兼容。如果它在这些环境中没有显示出来,则最常见的原因是浏览器用户代理字符串误导了环境检测机制。

在版本4.4.7之前(实际上是4.4.8,但此版本尚未发布),CKEditor仅在白名单环境(由env.js文件定义)中加载。最初的目的是阻止CKEditor出现在不支持它的环境中。然而,浏览器检测机制并不完美,特别是在移动设备上,浏览器供应商往往会伪造用户代理字符串,导致您所描述的问题。

但是,您可以通过将CKEDITOR.env.isCompatible标志更改为true来在不受支持的环境中启用CKEditor(自担风险),这会导致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;

您可以在Enabling CKEditor in Unsupported Environments文章中了解更多相关信息。

重要提示:CKEditor 4.5版本即将修改此机制,这是下一个即将推出的主要版本。票号#13316将把CKEDITOR.env.isCompatible从白名单修改为黑名单,希望有助于解决类似这样的问题。


我忘记回来这里看了,抱歉。谢谢你的回复。这绝对是我找到的解决方法的改进。 - TRose

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接