android - CKEditor 4.4.7 不显示在任何移动浏览器上

标签 android iphone mobile ckeditor ckeditor4.x

我正在为工作创建一个内部 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>

我编辑了这个以防万一有人遇到同样的问题。虽然不确定如何关闭问题。我太新太笨了。

最佳答案

一般来说,CKEditor 与 Android 上的 iOS 和 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;

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

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

关于android - CKEditor 4.4.7 不显示在任何移动浏览器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788527/

相关文章:

android - 如果在非 Activity 类中需要,Android 上的弹出窗口如何工作?

Android 自定义节标题 View

ios - 将原始自定义 View 添加到窗口

iphone - 我如何在 xcode 4 中引用一个单独的项目?

html - 为什么我的网站在移动设备上会这样?

html - 移动开发与宽度

windows-phone-7 - 在 Windows 模拟器中安装 .xap 文件

java - 在 native 应用程序中使用 Appium 处理弹出窗口

android - 使用 Json、Gson、InputStream 和 HttpPost 将文件插入 Mysql

iphone - 将电压施加到 iPhone 的麦克风端口