如何将CKEditor与Chrome应用集成

时间:2015-04-21 05:33:33

标签: ckeditor

我正在尝试将CKEditor与Chrome应用程序(包App)集成。但它不起作用,有没有人尝过这个?

我试图创建一个示例应用程序,有两个按钮"创建编辑器"和"删除编辑器",'创建编辑器'按钮应该打开一个编辑器,用户可以使用ckEditor创建一些内容(html /文本)。点击"删除编辑器",应关闭编辑器,内容应显示在文本"编辑内容"在同一页上。

我正在使用angularJS进行脚本编写。

这是 index.html

的代码段
 <div lang="en" ng-app="demoApp" ng-controller="MainCtrl" >
     <p>Click the buttons to create and remove a CKEditor instance.</p>
    <p>
        <input ng-click="createEditor()" type="button" value="Create Editor">
        <input ng-click="removeEditor()" type="button" value="Remove Editor">
    </p>
    <!-- This div will hold the editor. -->
    <div id="editor">
    </div>
    <div id="contents" style="display: none">
        <p>
            Edited Contents:
        </p>
        <!-- This div will be used to display the editor contents. -->
        <div id="editorcontents">
        </div>
    </div>
 </div>

此处是 main.js

的代码
var demoApp = angular.module('demoApp', []);

var MainCtrl = function($scope) {
        var editor, html = '';

         $scope.createEditor =function() {
            if ( editor )
                return;

            // Create a new editor inside the <div id="editor">, setting its value to html
            var config = {};
             editor = CKEDITOR.appendTo( 'editor', config, html );
          }

        $scope.removeEditor = function() {
            if ( !editor )
                return;
            document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();
            document.getElementById( 'contents' ).style.display = '';
            // Destroy the editor.
            editor.destroy();
            editor = null;
        }

   // $scope.Wrapper = Serv;
}

demoApp.controller('MainCtrl',MainCtrl);

如果我将此示例作为Web应用程序运行,则运行正常。但当我将其转换为打包的chrome应用程序时,它会在调试控制台上抛出错误

document.open() is not available in packaged apps.extensions::platformApp:17
Uncaught Error: document.write() is not available in packaged apps.extensions::platformApp:31 

请帮忙。

1 个答案:

答案 0 :(得分:1)

看起来问题可能是在此环境中无法访问某些API方法。一些谷歌搜索引导我this link

  

新的打包应用程序,特别是那些带有manifest_version:2的应用程序无法直接使用document.write或在脚本元素之间加载脚本。

     

您可以使用启用了所有这些功能的沙盒,因此请查看http://developer.chrome.com/trunk/apps/app_external.html#external

CKEditor需要访问<{>>经典编辑器使用的wysiwygarea plugin中的document.write。作为最简单的解决方法,您可以尝试使用inline editor来查看是否有帮助(如果您需要具有固定UI的内联编辑器,请检查第二个示例here)。