KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。

主要特点

  • 快速:体积小,加载速度快
  • 开源:开放源代码,高水平,高品质
  • 底层:内置自定义 DOM 类库,精确操作 DOM
  • 扩展:基于插件的设计,所有功能都是插件,可根据需求增减功能
  • 风格:修改编辑器风格非常容易,只需修改一个 CSS 文件
  • 兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera

官方文档:http://kindeditor.net/doc.php

集成到django2.0.4:

{# 载入js库 #}

<script src='{% static "js/jquery-1.12.1.min.js" %}'></script>

<script src='{% static "js/kindeditor/kindeditor-all-min.js" %}'></script>

</head>

<body>

<textarea id='content'>富文本</textarea>

<script>

initKindEditor();

function initKindEditor() {

var kind = KindEditor.create('#content', {

width: '100%',       // 文本框宽度(可以百分比或像素)

height: '300px',     // 文本框高度(只能像素)

minWidth: 200,       // 最小宽度(数字)

minHeight: 400      // 最小高度(数字)

});

}

  </script>

  需要注意的一点是,如果你要异步将富文本内容提交给后台,就需要动态获取富文本的内容,那么需要这样写

var content = $(document.getElementsByTagName("iframe")[0].contentWindow.document.body).html()

  而使用 传统的 $("#content").val() 是获取不到html标签的

  另外如果你想利用富文本编辑器上传文件到本地,前端需要添加配置:fileManagerJson: '/file_manager/',

  后台文件上传代码:

  

import os

import time

import json

def file_manager(request):

dic = {}

root_path = 'E:/week_23_1/static'

static_root_path = '/static/'

request_path = request.GET.get('path')

if request_path:

abs_current_dir_path = os.path.join(root_path, request_path)

move_up_dir_path = os.path.dirname(request_path.rstrip('/'))

dic['moveup_dir_path'] = move_up_dir_path + '/' if move_up_dir_path else move_up_dir_path

else:

abs_current_dir_path = root_path

dic['moveup_dir_path'] = ''     #  上一级目录

dic['current_dir_path'] = request_path  #current_dir_path 指当前的路径

dic['current_url'] = os.path.join(static_root_path, request_path)

file_list = []            #文件目录

for item in os.listdir(abs_current_dir_path):         #listdir 就是把某一路径下的东西全部拿下来

abs_item_path = os.path.join(abs_current_dir_path, item)

a, exts = os.path.splitext(item)

is_dir = os.path.isdir(abs_item_path)

if is_dir:

temp = {

'is_dir': True,   #是否是dir

'has_file': True, #目录下面是否存在文件

'filesize': 0,   #文件大小是多少

'dir_path': '',  #当前的路径是在哪

'is_photo': False,  #是否是图片

'filetype': '',    #文件的类型是什么

'filename': item,  #文件名是什么

'datetime': time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(os.path.getctime(abs_item_path))) #文件创始时间是什么

}

else:

temp = {

'is_dir': False,

'has_file': False,

'filesize': os.stat(abs_item_path).st_size,

'dir_path': '',

'is_photo': True if exts.lower() in ['.jpg', '.png', '.jpeg'] else False,

'filetype': exts.lower().strip('.'),

'filename': item,

'datetime': time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(os.path.getctime(abs_item_path)))

}

file_list.append(temp)

dic['file_list'] = file_list

return HttpResponse(json.dumps(dic))

HTML编辑器 -- KindEditor的更多相关文章

  1. 富文本编辑器kindeditor配置

    <!--富文本编辑器kindeditor配置↓ --> <link type="text/css" rel="stylesheet" href ...

  2. easyUI整合富文本编辑器KindEditor详细教程(附源码)

    原因 在今年4月份的时候写过一篇关于easyui整合UEditor的文章Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合,从那 ...

  3. 后台文本编辑器KindEditor介绍

    后台文本编辑器KindEditor介绍 我们在自己的个人主页添加文章内容的时候,需要对文章内容进行修饰,此时就需要文本编辑器助阵了! 功能预览 KindEditor文本编辑器 KindEditor文本 ...

  4. python 全栈开发,Day83(博客系统子评论,后台管理,富文本编辑器kindeditor,bs4模块)

    一.子评论 必须点击回复,才是子评论!否则是根评论点击回复之后,定位到输入框,同时加入@评论者的用户名 定位输入框 focus focus:获取对象焦点触发事件 先做样式.点击回复之后,定位到输入框, ...

  5. 使用富文本编辑器Kindeditor

    今天在做需求的时候,遇到有一个字段,需要保存带有格式的内容,决定使用富文本框编辑器Kindeditor来实现,解决方法如下: 登录官网下载控件包: http://kindeditor.net/down ...

  6. 富文本编辑器 KindEditor 的基本使用 文件上传 图片上传

    富文本编辑器 KindEditor 富文本编辑器,Rich Text Editor , 简称 RTE , 它提供类似于 Microsoft Word 的编辑功能. 常用的富文本编辑器: KindEdi ...

  7. 纯JS文本在线HTML编辑器KindEditor

    KindEditor(http://www.kindsoft.net)是一款比较专业,主流,好用的在线HTML编辑器. 它除了可以将文本进行编辑.将Word中的内容复制进来外,本身还可以拖动缩放(右下 ...

  8. HTML编辑器KindEditor

    KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本 ...

  9. 在线HTML编辑器KindEditor

     简介 KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE.Firefox.Chrome.Safari.Opera等主流浏览器.KindEdi ...

随机推荐

  1. 多层josn数据 修改

    var aa = { a: 1, b: { c: 1, d: 1 }, e: [{ f: 1, g: 2 }, { h: 1, i: { j: 3, k: [{ l: 55, m: [1, 2, 3, ...

  2. C++ 实现分数的四则运算

    对分数求加减乘除,以及化简 #include<iostream> #include<math.h> using namespace std; struct Fraction{ ...

  3. MySQL优化(二) 优化诀窍

    一.索引的使用 (1)查询要使用索引最重要的条件是查询条件中的字段建立了索引: (2)下列几种情况可能使用到索引: <1> 对于创建的多列索引,只要查询条件使用了最坐边的列,索引一般就会被 ...

  4. 第一个VS2015 Xaramin Android项目(续)

    上文说到已经第一个 App已经可以运行,但是并不能调试! 经过细心发现,我察觉到VS刚开始进入了调试模式,但是一闪而过.也就是说调试失败了,此时需要等待一段时间才能打开此App,如果立即打开App 会 ...

  5. cookie方法封装

    将cookie封装主要是为了方便使用,可通过修改参数直接引用在其他需要的地方,不用重新写. 1.添加,删除,修改cookie /** * @param name name:cookie的name * ...

  6. 学习STM32,你不得不了解的五大嵌入式操作系统

    学习STM32,你不得不了解的五大嵌入式操作系统                                                  原标题:学习STM32,你不得不了解的五大嵌入式操作 ...

  7. python入门之两种方法修改文件内容

    1.占硬盘修改 import os file_name="兼职.txt" new_file_name="%s.new".% file_name old_str= ...

  8. 登录服务器失败 IP 统计和处理方法

    一.登录ssh失败次数统计 1)错误的打开方式 awk '/Failed password/ {print $(NF-3)}' secure |sort -n |uniq -c|sort -n |ta ...

  9. C#sealed和final

    sealed用于类时,该类被称为密封类,密封类不能被继承: C#提出了密封方法(sealed method) 的概念,以防止在方法所在类的派生类中对该方法的重载.对方法可以使用sealed 修饰符,这 ...

  10. 判断jquery对象是否具有某指定属性或者方法的几种方法

    1.typeof 运算符:返回一个用来表示表达式的数据类型的字符串.("number", "string", "boolean", &quo ...