1. wysiwyg editor支持markdown吗
Bootstrap提供了一个叫wysiwyg的富文本组件,用来显示和编辑富文本数据,但如何将编辑后的数据保存到MySQL数据库,却不得而知。另外,如何将mysql数据库中的数据显示到wysiwyg也不得而知,对于这两个问题,让我来告诉你解决方案! 一、效果展示 首先,我们先来看看效果如何: 富文本中有一张图片,还有一个数字列表 我们可以看到编辑后的数据保存成功,以及保存后对应的展示。 二、富文本 度娘对于富文本的解释如下: 富文本格式(Rich Text Format, 一般简称为RTF)是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。RTF是Rich TextFormat的缩写,意即多文本格式。这是一种类似DOC格式(word文档)的文件,有很好的兼容性,使用Windows“附件”中的“写字板”就能打开并进行编辑。RTF是一种非常流行的文件结构,很多文字编辑器都支持它。一般的格式设置,比如字体和段落设置,页面设置等等信息都可以存在RTF格式中,它能在一定程度上实现word与wps文件之间的互访。 如果说富文本不包含图片,我们可以使用普通的html转码方法,见标题四;如果富文本包含图片,普通的html转码已经满足不了我们了,就需要用到jquery.base64.js,见标题三。 那么同时,我们看一看mysql字段的定义: `description` longtext NOT NULL COMMENT '项目详细描述', 字段类型为longtext(LongText 最大长度4294967295个字元 (2^32-1),虽然我也不知道到底有多大)。 三、jquery.base64 ①、引入jquery.base64.js <script type="text/javascript" src="${ctx}/components/jquery/jquery.base64.js"></script> 同时设置utf-8编码,确保中文不乱码. $.base64.utf8encode = true; ②、富文本表单提交 var editor = "<input type='hidden' name='" + $this.attr("name") + "' value='" + $.base64.btoa($this.html()) + "' />"; 关键代码:将富文本对象的html值转换为base64,然后封装到表单form中。 详细见如下(一整个form提交的表单封装,参照与dwz框架): /** * 带文件上传的ajax表单提交 * * @param {Object} * form * @param {Object} * callback */ function iframeCallback(form, callback) { YUNM.debug("带文件上传处理"); var $form = $(form), $iframe = $("#callbackframe"); // 富文本编辑器 $("div.editor", $form).each( function() { var $this = $(this); var editor = "<input type='hidden' name='" + $this.attr("name") + "' value='" + $.base64.btoa($this.html()) + "' />"; $form.append(editor); }); var data = $form.data('bootstrapValidator'); if (data) { if (!data.isValid()) { return false; } } if ($iframe.size() == 0) { $iframe = $("<iframe id='callbackframe' name='callbackframe' src='about:blank' style='display:none'></iframe>") .appendTo("body"); } if (!form.ajax) { $form.append('<input type="hidden" name="ajax" value="1" />'); } form.target = "callbackframe"; _iframeResponse($iframe[0], callback YUNM.ajaxDone); } function _iframeResponse(iframe, callback) { var $iframe = $(iframe), $document = $(document); $document.trigger("ajaxStart"); $iframe.bind("load", function(event) { $iframe.unbind("load"); $document.trigger("ajaxStop"); if (iframe.src == "javascript:'%3Chtml%3E%3C/html%3E';" // For // Safari iframe.src == "javascript:'<html></html>';") { // For FF, IE return; } var doc = iframe.contentDocument iframe.document; // fixing Opera 9.26,10.00 if (doc.readyState && doc.readyState != 'complete') return; // fixing Opera 9.64 if (doc.body && doc.body.innerHTML == "false") return; var response; if (doc.XMLDocument) { // response is a xml document Internet Explorer property response = doc.XMLDocument; } else if (doc.body) { try { response = $iframe.contents().find("body").text(); response = jQuery.parseJSON(response); } catch (e) { // response is html document or plain text response = doc.body.innerHTML; } } else { // response is a xml document response = doc; } callback(response); }); } ③、富文本数据展示 $('#editor').html($.base64.atob(description, true)); 通过base64对数据库中保存的html代码进行解码。 ④、wysiwyg组件 关于wysiwyg组件封装代码,我已上传到CSDN的代码库,可详细参照。 四、普通html转码做法 function html_encode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/&/g, ">"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/ /g, " "); s = s.replace(/\'/g, "'"); s = s.replace(/\"/g, """); s = s.replace(/\n/g, "<br>"); return s; } function html_decode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/>/g, "&"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/ /g, " "); s = s.replace(/'/g, "\'"); s = s.replace(/"/g, "\""); s = s.replace(/<br>/g, "\n"); return s; } 一般情况下,使用上面两个方法对html数据进行编码和解码,但是对于图片的保存却无能为力。 以上就是本文的全部内容,希望对大家了解富文本组件wysiwyg有所帮助。
2. django什么富文本编辑器好用(django富文本编辑器哪个好)
本篇文章给大家谈谈django什么富文本编辑器好用,以及django富文本编辑器哪个好对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
富文本即具备丰富样式格式的文本。可以是包含了HTML语法格式的字符串。为了快速简单的让用户能够在页面中编辑带html格式的文本,引入富文本编辑器。
富文本编辑器:ueditor、ckeditor、kindeditor
在INSTALLED_APPS中添加
在settings/dev.py中添加
在总路由中添加
ckeditor提供了两种类型的Django模型类字段
修改应用/models.py里面的字段信息,记得要重新数据迁移
效果图
TinyMCE|一款非常不错的富文本编辑器TinyMCE的优势:[1]
如果直接用form表单提交,后台是可以正常获取到textarea内容的;如果用ajax提交,直接使用jquery$('#mytextarea').val()是获取不到内容的,需要按如下方法获取内容:
如果需要上传图片,需要在tinymce初始化里添加如下配置:
目前简单体验了一下TinyMCE,感觉还是可以,可以直接把网页、word的内容直接拷贝过来,并能保留源格式,图片按照上述配置好后,支持直接粘贴过来完成上传到后台。其他功能等深入使用后再作更新。
几种富文本编辑器Editor比较
1、UEditor网络的。
优点:插件多,基本满足各种需求,类似贴吧中的回复界面。
缺点:不再维护,文档极少,使用并不普遍,图片只能上传到本地服务器,如果需要上传到其他服务器需要改动源码,较为难办,加载速度慢。
总结:小项目,可以用用,不推荐使用。
2、kindeditor
界面类似网络,效果很像
文档齐全但用例较少,使用还算方便。
缺点:总感觉样子不是很好看,没有现代那种风格,还是老式的传统图标。
3、simditor
样式好看,插件不多,基本满足需求
文档英文,使用较为吃力,如果英文水平不好的话
github上面开源,维护较好
因为文档看起来吃力,所以本人没有考虑继续使用。
4、bootstrap-wysiwyg
利用bootstrap实现的,简洁大方好看。
优点:轻量,好看,使用方便。
缺点:需要一定的浏览器支持,毕竟需要bootstrap
5、wangEditor
js和css实现
优点:轻量简洁,最重要的是开源且中文文档齐全。设计的UI漂亮。
插件基本能满足需求,本人推荐使用。
6、CKEditor
功能强大,使用较多,可以看他们官网的例子,马上就有感觉。
优点:编辑能力极强,基本和word差不多了。看起来界面极其优秀的一款。
缺点:网站访问速度一般,文档英文,需要花时间开发。
7、tinymce
支持图片在线处理,插件多,功能强
编辑能力优秀,界面好看。
同样文档为英文,开发需要花时间。
使用之前需要考虑的点:
1需要插件,是否需要很多的插件,还是说简单的那些功能就行了。
2界面考虑,看你喜欢那个界面了。
3图片是否需要上传图片服务器。
4文档如果为英文是否会影响开发。
5支持浏览器类型和版本。
python-django中使用ckeditor富文本,后台没问题,前台为什么不好使?首先说一下富文本编辑器的原理,富文本编辑器一般都是通过js文件实现的,类似于一个网页控件。在django后台之所以可以调用富文本编辑器,那是因为它可以根据这个富文本编辑器定义的字段,找到对行的js文件,然后在后台模板里调用这个js文件。而你直接通过给模板传递对应的函数,模板文件虽然可以识别到对应的函数,但是无法加载对应的js文件,自然无法在网页中初始化这个富文本编辑器的控件。
因此,对应的解决办法是查一下ckeditor这个编辑器的前端调用方式,正常情况下一般是给你需要插入富文本编辑器的编辑框设置一个ckeditor对应的类,然后在模板文件中使用script/script标签来导入ckeditor需要的js文件以及其他需要导入的静态文件,就可以了。
不知道我讲清楚了没有,希望可以帮助到你。
哪个编辑器比较好用VSCode:这是一个免费、开源、跨平台的代码编辑器,由微软自主设计研发,界面风格和VS相似,但没有VS那么庞大臃肿,运行速度快、占用内存少,支持常见的自动补全、代码高亮、语法提示、GIT等功能,安装Python插件后,可以直接编辑运行Python程序。对于Python入门开发者来说,是非常不错的选择。
SublimeText:是一个非常不错的代码编辑器,基本功能和VSCode差不多,轻便灵活、运行速度快,文本编辑功能强大,常见的自动补全、语法检查、语法提示功能都能很好支持,配置好本地Python解释器路劲后,也是一个非常不错的Python开发软件。
Atom:也是一个免费、开源、跨平台的代码编辑器,由GitHub专门为广大程序员设计研发,基本功能和前2个编辑器差不多,支持常见的智能补全、代码高亮、语法检查等功能,安装Python插件后,也可以直接编辑运行Python程序。
Vim:这是Linux环境下使用最多的文本编辑器,轻便灵活、插件扩展众多,可以自定义配置环境,和各种编程语言都能混搭,而且效果很好,安装Python之后,可以直接当作一个非常不错的Python开发软件来使用。
VisualStudio:目前使用最多的IDE环境,集成了非常多的开发环境,新的版本也开始支持Python开发,勾选Python之后,可以直接编辑、调试、运行Python程序,功能强大。
PyCharm:一个Python专用的开发软件,在业界非常流行,也非常受欢迎,支持代码重构、代码分析、单元测试等高级功能,因此开发、调试、运行效率很高,本身自带了许多工程模块,可以快速构建flask、Django等web应用。
富文本编辑器-1-选型团队的业务多为后台管理系统,部分业务需要使用富文本编辑器。早期团队选用了网络编辑器,但存在bug多、无人维护、扩展性差等问题,且后续业需要更灵活的编辑器。为了解决这些问题,决定重选编辑器。
基于以下原因,笔者决定使用Quill来开发团队的编辑器组件:
1.Delta和API
Quill返回json结构的数据,有API操作编辑器内部元素。也可以通过innerHtml获取dom。
2.可定制
Quill可以修改、扩展现有的模块,也可以添加新的模块,甚至可以在parchment的基础上全部重写。有较强的灵活性。
3.兼容性
当前版本兼容Chrome、IE11、Edge,已满足业务需求。
4.与其他编辑器比较
相比CKEditor、TinyMCE等传统编辑器,有更好的API和定制功能。而Draft是基于React的编辑器,需要自己实现数据层的内容,使用成本更高。国内的wangEditor功能比较全面,但不具备扩展性。
1.基础文本模块
分割线、格式刷、段落、撤回和重做
2.多媒体模块
图片上传模块
3.其他模块
工具栏的Tooltip模块
4.预览功能
图片上传主要取决于业务需求,我们可以改写图片的handler方法,打开一个模态框或者打开本地文件夹,调接口上传图片。通用点是保存的时候,用Delta保留前面的内容并插入图片内容,最后更新Quill。
由于图片上传、预览主要取决于业务需求,与编辑器关系不大,后面不再提到。
关于django什么富文本编辑器好用和django富文本编辑器哪个好的介绍到此就结束了,不知道你从中找到你需要的信息了吗?如果你还想了解更多这方面的信息,记得收藏关注本站。
3. javascript 程序在不同的浏览器上运行时,效果是相同的吗
速度上抄会有明显差异,目前 Chrome 最快,Firefox 也很快,IE 相对比较慢。
在具体的表现样式上,主要取决于浏览器对 css 的支持。
如果用 javascript 做 WYSIWYG 编辑器,所产生的HTML代码,差别比较明显,原因是各个浏览器的内核对DOM对象有不同的解释,API也不一样,要做到一致比较困难。
如果是有经验的开发者,基本上会做到不同浏览器都有相同的效果。
补充:
建议采用比较成熟的 javascript 框架,比如 jQuery,他已经为你做了很多工作,使得 javascript 在各个浏览器里面都会有相同的表现。