我正在尝试在基于codeigniter的网站上安装CKEditor,我已经按照本教程进行了操作:CKEditor in Codeigniter Tutorial
但我收到此错误:TypeError: c[a] is undefined
CKEDITOR.lang.load/d() ckeditor___ckeditor:230
CKEDITOR.scriptLoader</<.load/f() ckeditor___ckeditor:231
CKEDITOR.scriptLoader</<.load/x() ckeditor___ckeditor:231
CKEDITOR.scriptLoader</<.load/A() ckeditor___ckeditor:231
CKEDITOR.scriptLoader</<.load/u/g.$.onerror()
ckeditor文件夹所在的文件夹:assets / js /(将是:assets / js / ckeditor /)
CKEDITOR_BASEPATH为CKEDITOR_BASEPATH = 'http://localhost:5678/assets/js/ckeditor/';
我不知道这个错误是什么,我无法找到合适的答案或修复它。
提前致谢。
答案 0 :(得分:1)
我有同样的问题。 CKEditor没有正确识别自己的文件夹。 所以你应该在加载CKEditor之前设置一个CKEDITOR_BASEPATH变量。
这里简单地说:(但可能还有其他地方可以更好地解释。) http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.html#.basePath
因此实施将是这样的:
<script>
window.CKEDITOR_BASEPATH = 'http://example.com/path/to/libs/ckeditor/';
</script>
就我而言,我使用了window.CKEDITOR_BASEPATH = '/app/storereport/ckeditor/';
然后加载主ckeditor.js脚本。
<script type="application/javascript"/>
$(document).ready(function (){
CKEDITOR.replace( 'product_content' ); // ID of element
});
</script>
答案 1 :(得分:0)
Use ckeditor in codeigniter
You need
1.Ckeditor helper : ckeditor_helper.php file put on system/helpers folder
2.Ckeditor-pacakge : http://ckeditor.com/download put on root directory
Write bellow code in controller file ex.Page.php
-------------------------------------------------------------------------
class Page extends CI_Controller {
public $data;
public function __construct() {
parent::__construct();
$this->load->helper('ckeditor'); //load helper
}
//load html view
public function add() {
$this->data['ckeditor'] = array(
'id' => 'format', //ID of the textarea that will be replaced 'path' => '../ckeditor/',
'config' => array(
'toolbar' => "Full", //Using the Full toolbar
'width' => "auto", //a custom width
'height' => "300px", //a custom height
),
);
//Loading add File
$this->load->view('page/add', $this->data);
}
}
load view file
---------------------------------------------------------------------
add.php
<?php
$form_data = array('class'=>'form-horizontal', 'role'=>'form','id' => 'pagefrm','name' => 'pagefrm','enctype'=>'multipart/form-data');
echo form_open('Page/Newpage',$form_data); ?>
<div class="form-group">
<label class="col-md-3 control-label" for="example-email">Page Format </label>
<div class="col-md-6">
<textarea class="form-control ckeditor" name="format" id="format" ></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-5 col-sm-12">
<button type="submit" class="btn btn-primary waves-effect waves-light"> Add </button>
</div>
</div>
<?php echo form_close();?>
write js to your view file->
<script src="<?php echo base_url();?>assets/js/jquery.min.js"></script>
<script src="<?php echo base_url();?>assets/js/jquery.validate.js"></script>
<script src="<?php echo base_url();?>ckeditor/ckeditor.js"></script> //manage your path
Here you also validate not allowed blank content not allowed using validate.js
--------------------------------------------------------------------
<script type="text/javascript">
$(document).ready(function () {
// When the browser is ready...
$(function () {
// form validation
$("#pagefrm").validate({
// Specify the validation rules
rules: {
format: {
required: function (textarea) {
CKEDITOR.instances['format'].updateElement();
// update textarea
var editorcontent = textarea.value.replace(/<[^>]*>/gi, ''); // strip tags
return editorcontent.length === 0;
}
}
},
// Specify the validation error messages
messages: {
format: "Please enter page format"
},
ignore: [],
submitHandler: function (form) {
form.submit();
}
});
});
});
</script>
答案 2 :(得分:0)
//ckeditor_helper.php
//put on system/helpers/
<?php
if(!defined('BASEPATH')) exit('No direct script access allowed');
function form_ckeditor($data)
{
$data['language'] = isset($data['language']) ? $data['language'] : 'es';
$size = isset($data['width']) ? 'width: "'.$data['width'].'", ' : '';
$size .= isset($data['height']) ? 'height: "'.$data['height'].'", ' : '';
$options = '{'.
$size.
'language: "'.$data['language'].'",
stylesCombo_stylesSet: "my_styles",
startupOutlineBlocks: true,
entities: false,
entities_latin: false,
entities_greek: false,
forcePasteAsPlainText: false,
filebrowserImageUploadUrl : "filexplorers/fckeditor_upload/image", // << My own file uploader
filebrowserImageBrowseUrl : "filexplorers/inlinebrowse/image", // << My own file browser
filebrowserImageWindowWidth : "80%",
filebrowserImageWindowHeight : "80%",
toolbar :[
["Source","-","FitWindow","ShowBlocks","-","Preview"],
["Undo","Redo","-","Find","Replace","-","SelectAll","RemoveFormat"],
["Cut","Copy","Paste","PasteText","PasteWord","-","Print","SpellCheck"],
["Form","Checkbox","Radio","TextField","Textarea","Select","Button","ImageButton","HiddenField"],
["About"],
"/",
["Bold","Italic","Underline"],
["OrderedList","UnorderedList","-","Blockquote","CreateDiv"],
["Image","Flash","Table"],
["Link","Unlink","Anchor"],
["Rule","SpecialChar"],
["Styles"]
]
}';
$my_styles = 'CKEDITOR.addStylesSet("my_styles",
[
// Block Styles
{ name : "H3", element : "h3"},
{ name : "Heading 4", element : "h4"},
{ name : "Heading 5", element : "h5"},
{ name : "Heading 6", element : "h6"},
{ name : "Document Block", element : "div"},
{ name : "Preformatted Text", element : "pre"},
{ name : "Address", element : "address"},
// Inline Styles
{ name: "Centered paragraph", element: "p", attributes: { "class": "center" } },
{ name: "IMG bordered", element: "img", attributes: { "class": "bordered" } },
{ name: "IMG left", element: "img", attributes: { "class": "left" } },
{ name: "IMG right", element: "img", attributes: { "class": "right" } },
{ name: "IMG left bordered", element: "img", attributes: { "class": "left bordered" } },
{ name: "IMGright bordered", element: "img", attributes: { "class": "right bordered" } },
]);';
return
// fix: move to <HEAD...
'< script type="text/javascript" src="'.base_url().'application/plugins/ckeditor/ckeditor.js"></ script>' .
// put the CKEditor
'< script type="text/javascript">' .
$my_styles .
'CKEDITOR.replace("'.$data['id'].'", ' . $options . ');</ script>';
}
答案 3 :(得分:0)
我还在我的CI项目中使用过Ckeditor。不要使用这么长的方法使用这些简单的步骤 -
在您的路径assets / js /中导出您的Ckeditor库,因为您已经这样做了。
在您的html页面上包含此内容 -
页面顶部显示<script type="text/javascript" src="/assets/js/ckeditor/ckeditor.js"></script>
。
html包含脚本,代码为 -
CKEDITOR.replace('content');
/ * content是要应用ckeditor的textarea字段的名称* /