问题：解决GB2312非乱码问题：
只要将
kindeditor.js   
kindeditor-min.js  
lang/zh_CN.js  这三个文件的编码转换成GB2312即可
==================================
问题：修改默认上传路径：
问题：修改默认上传路径：
默认情况下kindeditor上传的图片在编辑器的根目录/attached/目录下。以日期建一个目录，然后保存文件。有些时候大概我们并不想这样。考虑到更新编辑器，或更换编辑器不太方便。比如我现在想把上传的文件保存在根目录下的uploadfiles目录下，需要修改以下代码：
首先，打开文件php\upload_json.php，在大约第16行到第19行，定义了文件保存目录路径和文件保存目录URL，我们需要修改为：
//文件保存目录路径
$save_path = $_SERVER['DOCUMENT_ROOT'].'\\uploadfiles\\';
//文件保存目录URL
$save_url = '/uploadfiles/';//最好使用相对于根目录的绝对路径
解释一下：$save_path 即为最后保存文件的目录。这里就是根目录下的uploadfiles
$save_url 即为上传成功后，图片的URL地址。
这样，保存地址就变成了 根目录下的 uploadfiles/年月日/xxxxx.jpg了。
==================================
kindeditor的使用方法
一、asp添加编辑器
1在该HTML页面添加以下脚本，注意红色代码路径：
<link rel="stylesheet" href=" kindeditor/themes/default/default.css" />
<script charset="utf-8" src="kindeditor/kindeditor.js"></script>
<script charset="utf-8" src="kindeditor/lang/zh_CN.js"></script>
<script>
        var editor;
        KindEditor.ready(function(K) {
                editor = K.create('#editor_id');
        });
</script>
注释：不含上传文件功能
<link rel="stylesheet" href=" kindeditor/themes/default/default.css" />
<script charset="utf-8" src="kindeditor/kindeditor.js"></script>
<script charset="utf-8" src="kindeditor/lang/zh_CN.js"></script>
<script>
        var editor;
        KindEditor.ready(function(K) {
                editor = K.create('#editor_id',{
                uploadJson : 'kindeditor/asp/upload_json.asp',
                fileManagerJson : 'kindeditor/asp/file_manager_json.asp',
                allowFileManager : true
        });
        });
</script>
注释：含有上传文件功能
2在需要显示编辑器的位置添加textarea输入框：
<textarea id="editor_id" name="content" style="width:700px;height:300px;">
&lt;strong&gt;HTML内容&lt;/strong&gt;
</textarea>
二、如需要单独调用组件：
1 在已经添加以下脚本下加入：
<script charset="utf-8" src="kindeditor/kindeditor.js"></script>
<script charset="utf-8" src="kindeditor/lang/zh_CN.js"></script>
<script>
        var editor;
        KindEditor.ready(function(K) {
                editor = K.create('#editor_id',{
                uploadJson : 'kindeditor/asp/upload_json.asp',
                fileManagerJson : 'kindeditor/asp/file_manager_json.asp',
                allowFileManager : true
        });
       --------------------------注意添加位置和红色代码名称----------------------                           
                     K('#image1').click(function() {
                     editor.loadPlugin('image', function() {
                     editor.plugin.imageDialog({
                     showRemote : false,
                     imageUrl : K('#img').val(),
                     clickFn : function(url, title, width, height, border, align) {
                                                        K('#img').val(url);
                                                        editor.hideDialog();
                                                 }});});});
       --------------------------注意添加位置和红色代码名称----------------------
        });
</script>
2在需要显示编辑器的位置添加input输入框：
<input type="text" id="img" name="img" value="" size=50 /> <input type="button" id="image1" value="选择图片" />
 
三、部分脚本代码，更多参照官方演示文档：
1 上传图片弹出框
<html>
       <head>
              <meta charset="utf-8" />
              <title>ImageDialog Examples</title>
              <link rel="stylesheet" href="../themes/default/default.css" />
              <script src="../kindeditor.js"></script>
              <script src="../lang/zh_CN.js"></script>
              <script>
                     KindEditor.ready(function(K) {
                            var editor = K.editor({
                                   allowFileManager : true
                            });
                            K('#image1').click(function() {
                                   editor.loadPlugin('image', function() {
                                          editor.plugin.imageDialog({
                                                 imageUrl : K('#url1').val(),
                                                 clickFn : function(url, title, width, height, border, align) {
                                                        K('#url1').val(url);
                                                        editor.hideDialog();
                                                 }
                                          });
                                   });
                            });
                            K('#image2').click(function() {
                                   editor.loadPlugin('image', function() {
                                          editor.plugin.imageDialog({
                                                 showLocal : false,
                                                 imageUrl : K('#url2').val(),
                                                 clickFn : function(url, title, width, height, border, align) {
                                                        K('#url2').val(url);
                                                        editor.hideDialog();
                                                 }
                                          });
                                   });
                            });
                            K('#image3').click(function() {
                                   editor.loadPlugin('image', function() {
                                          editor.plugin.imageDialog({
                                                 showRemote : false,
                                                 imageUrl : K('#url3').val(),
                                                 clickFn : function(url, title, width, height, border, align) {
                                                        K('#url3').val(url);
                                                        editor.hideDialog();
                                                 }
                                          });
                                   });
                            });
                     });
              </script>
       </head>
       <body>
              <p><input type="text" id="url1" value="" /> <input type="button" id="image1" value="选择图片" />（网络图片 + 本地上传）</p>
              <p><input type="text" id="url2" value="" /> <input type="button" id="image2" value="选择图片" />（网络图片）</p>
              <p><input type="text" id="url3" value="" /> <input type="button" id="image3" value="选择图片" />（本地上传）</p>
       </body></html>
2 批量上传图片弹出框
<html>
       <head>
              <meta charset="utf-8" />
              <title>MultiImageDialog Examples</title>
              <link rel="stylesheet" href="../themes/default/default.css" />
              <script src="../kindeditor.js"></script>
              <script src="../lang/zh_CN.js"></script>
              <script>
                     KindEditor.ready(function(K) {
                            var editor = K.editor({
                                   allowFileManager : true
                            });
                            K('#J_selectImage').click(function() {
                                   editor.loadPlugin('multiimage', function() {
                                          editor.plugin.multiImageDialog({
                                                 clickFn : function(urlList) {
                                                        var div = K('#J_imageView');
                                                        div.html('');
                                                        K.each(urlList, function(i, data) {
                                                               div.append('<img src="' + data.url + '">');
                                                        });
                                                        editor.hideDialog();
                                                 }
                                          });
                                   });
                            });
                     });
              </script>
       </head>
       <body>
              <input type="button" id="J_selectImage" value="批量上传" />
              <div id="J_imageView"></div>
       </body>
</html>
3 上传文件弹出框
<html>
       <head>
              <meta charset="utf-8" />
              <title>fileDialog Examples</title>
              <link rel="stylesheet" href="../themes/default/default.css" />
              <script src="../kindeditor.js"></script>
              <script src="../lang/zh_CN.js"></script>
              <script>
                     KindEditor.ready(function(K) {
                            var editor = K.editor({
                                   allowFileManager : true
                            });
                            K('#insertfile').click(function() {
                                   editor.loadPlugin('insertfile', function() {
                                          editor.plugin.fileDialog({
                                                 fileUrl : K('#url').val(),
                                                 clickFn : function(url, title) {
                                                        K('#url').val(url);
                                                        editor.hideDialog();
                                                 }
                                          });
                                   });
                            });
                     });
              </script>
       </head>
       <body>
              <input type="text" id="url" value="" /> <input type="button" id="insertfile" value="选择文件" />
       </body>
</html>
四、部分脚本修改代码：
1 插入文件后，显示为路径如需修改为显示图标，在
kindeditor/plugins/insertfile/insertfile.js文件中把：
self.clickToolbar(name, function() {
              self.plugin.fileDialog({
                     clickFn : function(url, title) {
                            var html = '<a class="ke-insertfile" href="' + url + '" data-ke-src="' + url + '" target="_blank">' + title + '</a>';
                            self.insertHtml(html).hideDialog().focus();
替换成（注意红色代码路径）：
 
self.clickToolbar(name, function() {
  self.plugin.fileDialog({
   clickFn : function(url, title) {
     var ext=/\.[^\.]+$/.exec(url);
    img = 'rar.gif';
    if(ext == '.doc')  img='doc.gif';
     if(ext == '.xls')  img="execl.gif";
     if(ext == ".ppt")  img="ppt.gif";
    if(ext ==  ".rar")  img="rar.gif";
    if(ext ==  ".zip")  img="zip.gif";
    if(ext ==  ".txt")  img="txt.gif";
    if(ext ==  ".pdf")  img="pdf.gif";
    if(ext ==  ".docx") img="doc.gif";
    if(ext ==  ".xlsx") img="execl.gif";
       if(ext == ".pptx") img="ppt.gif";
    img = "/hkdnkjweb2014/SysImage/icon32/"+img;
    var html ='<a class="ke-insertfile" href="' + url + '" data-ke-src="' + url + '" target="_self">' + '<img src="'+img+'" border="0"/>' +  '</a>';
       self.insertHtml(html).hideDialog().focus();  




========================================================================
KindEditor-编辑器配置参数属性

在《KindEditor-KindEditor简介》中提到了KindEditor编辑器的使用方法，通过使用KE.show(config)方法即可将编辑器添加到文档中。下面是一段源码：

KE.show = function(args) {
   KE.init(args);
   KE.event.ready(function() { KE.create(args.id); });
};

从源码中可以看出，有两种使用编辑器的方法：

法一：KE.show(config);

法二：KE.init(config);KE.create(id);

 

·无论使用哪种方式使用KindEditor编辑器，都必须进行参数配置；

·可以在KE.show()和KE.init()方法中传递配置参数config；

·配置参数config是一个对象，一般使用字面量对象；

·其中，id参数是唯一必须进行配置的，其他参数可以省略。

 

参数设置例子

KE.show({
    id : "content_1",
    width : "70%", //编辑器的宽度为70%
    height : "200px", //编辑器的高度为100px
    filterMode: false, //不会过滤HTML代码
    resizeMode: 1 //编辑器只能调整高度
});



配置参数

1、id
TEXTAREA输入框的ID，必须设置。
数据类型：String

 

2、items
配置编辑器的工具栏，其中"-"表示换行，"|"表示分隔符。
数据类型：Array
默认值：

['source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', 'copy', 'paste',
'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
'justifyfull', 'insertorderedlist','insertunorderedlist', 'indent', 'outdent', 'subscript',
'superscript', '|', 'selectall', '-',
'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold',
'italic', 'underline', 'strikethrough', 'removeformat', '|', 'image',
'flash', 'media', 'advtable', 'hr', 'emoticons', 'link', 'unlink', '|', 'about']

        

3、width
编辑器的宽度，可以设置px或%，比TEXTAREA输入框样式表宽度优先度高。
数据类型：String
默认值：TEXTAREA输入框的宽度
注: 3.2版本开始支持。

 

4、height
编辑器的高度，只能设置px，比TEXTAREA输入框样式表高度优先度高。
数据类型：String
默认值：TEXTAREA输入框的高度
注: 3.2版本开始支持。


5、minWidth
数据类型：Int
指定编辑器最小宽度，单位为px。
默认值：200

 

6、minHeight
数据类型：Int
指定编辑器最小高度，单位为px。
默认值：100

 

7、filterMode
数据类型：Boolean
true时过滤HTML代码，false时允许输入任何代码。
默认值：false
注: 3.4以前版本的filterMode默认值为true。

 

8、htmlTags
指定要保留的HTML标记和属性。哈希数组的key为HTML标签名，value为HTML属性数组，"."开始的属性表示style属性。
数据类型：Object
默认值：

{
   font : ['color', 'size', 'face', '.background-color'],
   span : ['style'],
   div : ['class', 'align', 'style'],
   table:['class', 'border', 'cellspacing', 'cellpadding', 'width', 'height', 'align', 'style'],
   'td,th':['class', 'align', 'valign', 'width', 'height',

            'colspan','rowspan','bgcolor','style'],
   a :['class', 'href', 'target', 'name', 'style'],
   embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality',

             'style', 'align', 'allowscriptaccess','/'],
   img : ['src', 'width', 'height', 'border', 'alt', 'title', 'align', 'style', '/'],
   hr : ['class', '/'],
   br : ['/'],
   'p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : ['align', 'style'],
   'tbody,tr,strong,b,sub,sup,em,i,u,strike' : []
}     

注：filterMode为true时有效。3.4版本开始属性可设置style，保留所有inline样式。

 

9、resizeMode
2或1或0，2时可以拖动改变宽度和高度，1时只能改变高度，0时不能拖动。
数据类型：Int
默认值：2

 

10、skinType
风格类型，default或tinymce。
数据类型：String
默认值：default
注：3.4以前版本和3.4.1版本开始默认值为default，3.4版本的默认值为oxygen。

 

11、wyswygMode
可视化模式或代码模式
数据类型：Boolean
默认值：true

 

12、cssPath
指定编辑器iframedocument的CSS，用于设置可视化区域的样式。
数据类型：String或Array
默认值：空
注：3.4.1版本开始可指定多个CSS文件。例如：cssPath : ['a.css', 'b.css']

 

13、skinsPath
指定编辑器的skins目录，skins目录存放风格的css文件和gif图片。
数据类型：String
默认值：KE.scriptPath + 'skins/'

 

14、pluginsPath
指定编辑器的plugins目录。
数据类型：String
默认值：KE.scriptPath + 'plugins/'

 

15、minChangeSize
undo/redo文字输入最小变化长度，当输入的文字变化小于这个长度时不会添加到undo堆栈里。
数据类型：Int
默认值：5

 

16、loadStyleMode
true时自动加载编辑器的CSS。
数据类型：Boolean
默认值：true
注: 3.4版本开始支持。

 

17、urlType
改变站内本地URL，可设置空、relative、absolute、domain。

空为不修改URL，relative为相对路径，absolute为绝对路径，domain为带域名的绝对路径。
数据类型：String
默认值：空
注: 3.4版本开始支持，3.4.1版本开始默认值为空。

 

18、newlineTag
设置回车换行标签，可设置p、br。
数据类型：String
默认值：br
注: 3.4版本开始支持。

 

19、afterCreate
设置编辑器创建后执行的回调函数。
数据类型：Function
默认值：无

 

20、afterDialogCreate
设置弹出浮动框创建后执行的回调函数。
数据类型：Function
默认值：无
注: 3.4.3版本开始支持。

 

21、allowUpload
true或false，true时显示上传图片标签。
数据类型：Boolean
默认值：true
注: 3.4版本开始支持。

 

22、allowFileManager
true或false，true时显示浏览服务器图片功能。
数据类型：Boolean
默认值：false
注: 3.4版本开始支持。

 

23、referMethod
设置referMethod后上传图片的POST参数里有referMethod。
数据类型：String
默认值：空
注: 3.4版本开始支持。

 

24、dialogAlignType
设置弹出框(dialog)的对齐类型，可设置page和空。

指定page时按当前页面居中，指定空时按编辑器居中。
数据类型：String
默认值：page
注: 3.4.1版本开始支持。

 

25、imageUploadJson
指定上传图片的服务器端程序。
数据类型：String
默认值：../../php/upload_json.php
注: 3.4.1版本开始支持。

 

26、fileManagerJson
指定浏览远程图片的服务器端程序。
数据类型：String
默认值：../../php/file_manager_json.php
注: 3.4.1版本开始支持。

 

27、autoSetDataMode
true或false。

true时自动将编辑器内容设置到原来的textarea，也就是每次输入内容就执行KE.util.setData函数。
数据类型：Boolean
默认值：true
注:3.5版本开始支持。打开autoSetDataMode模式后会降低输入性能，理想的做法是关闭autoSetDataMode，提交数据前执行KE.util.setData。

 

28、afterSetData
自动执行KE.util.setData后执行的回调函数，autoSetDataMode为true时有效。
数据类型：Function
默认值：无
注: 3.5版本开始支持。

 

29、shadowMode
true或false，true时弹出层显示阴影。
数据类型：Boolean
默认值：true
注: 3.5版本开始支持。

 

30、allowPreviewEmoticons
true或false，true时鼠标放在表情上可以预览表情。
数据类型：Boolean
默认值：true
注: 3.5版本开始支持。
========================================================================

========================================================================

========================================================================

========================================================================

========================================================================















