h5富文本编辑框架TinyMCE

1、TinyMCE富文本官方文档学习:https://www.tiny.cloud/docs/quick-start/

2、TinyMCE5.0.3  js包下载(已整合中文语言包,官方有提供):https://download.csdn.net/download/chen_jia_hao/11136644

功能很强大,界面好看,轻量级,插件多。不过高级功能需要收费。

3、简单demo:

<!DOCTYPE html>
<html>
<head>
  <script src="./tinymce/js/tinymce/tinymce.min.js"></script>
  <script type="text/javascript">
	 var tinyMCE =  tinymce.init({
		  selector: '#mytextarea' 
		 ,language: 'zh_CN' //指定语言
		 ,font_formats:'Arial=arial,helvetica,sans-serif;Times New Roman;新宋体;仿宋;宋体;黑体;楷体;华文楷体;华文行楷;华文新魏' //字体
		 ,plugins : 'advlist code searchreplace autolink link image imagetools lists charmap print preview autoresize table charmap wordcount' //引入插件
		 ,object_resizing:true //默认情况下启用此选项,允许您调整表格和图像的大小。
		 //,imagetools_toolbar: "rotateleft rotateright | flipv fliph | editimage imageoptions"
		 ,skin: "oxide" //配置皮肤
		 ,statusbar: false //是否应显示编辑器底部的状态栏
		 ,theme: 'silver' //主题
		 ,br_in_pre: false
		 ,custom_undo_redo_levels: 10 //撤消级别数,默认情况下,它设置为使用无限数量的撤消级别。custom_undo_redo_levels对于低端系统,其值应为10或更低,否则会窃取大量内存。
		 ,toolbar: [//工具栏配置
		'code print removeformat| undo redo | fontselect fontsizeselect forecolor backcolor ',
		'alignleft aligncenter alignright bold italic bullist numlist indent outdent | blockquote link image wordcount|rotateleft|preview'
	  ]
	  //, toolbar_drawer: 'floating' //sliding和floating
		 ,images_reuse_filename: true //true:不为每个上传的文件生成唯一的文件名,false反之
		 ,images_upload_url: 'file/upload' //处理图片服务器地址
		 ,automatic_uploads: false //自动上传图片标识
		 ,images_upload_handler: function (blobInfo, success, failure) {//覆盖默认上传图片处理事件
			//上传处理函数有三个参数:blobInfo,一个success回调,以及failure回调。
			// blobInfo.blob(), blobInfo.filename()
			
			console.log("images_upload_handler.....");
			success("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top_86d58ae1.png");
		  }
	  });
  
  
	  window.onload=function(){
		  document.getElementById("btn").onclick=function(){
		 //$('目标元素').html(插入的内容)  //设置tinymce编辑器的内容
		 //tinymce.get('目标元素').getContent() //获取tinymce编辑器的内容
		  var content = tinymce.get('mytextarea').getContent() //获取tinymce编辑器的内容
			alert( content );
		  }
	  }
  
  </script>
</head>

<body>
  <textarea id="mytextarea">chenjiahao!</textarea>
  <button id="btn">获取内容</button>
</body>
</html>

3、富文本效果图

 

4、支持首行缩进插件

使用过程中,官方只提供了缩进缩退功能,没有提供首行缩进,而且还有点小问题。于是不得不自己自定义插件。关键代码如下:

/**
 * text-indent 首行缩进
 * @author chen jia hao
 * @Date 2019-04-27
 * Tinymce-Version: 5.0.3
 */
(function () {
	'use strict';
	tinymce.PluginManager.add('textindent', function(editor, url) {
	   
	  editor.on('init', function () {
			editor.formatter.register({
				textindent: {block: 'p', styles: {'text-indent': '%value'}},
			});
	  });
	  editor.ui.registry.addButton('text-indent', {
		//text: '首行缩进',
		tooltip: '首行缩进',
		icon:'indent',
		onAction: function () {
			var selectedNode = editor.selection.getNode();
			var style = editor.dom.getAttrib(selectedNode, 'style').toLowerCase().replace(/\s/g,'');
			if(style && (/text-indent:[^0]{1}\d*/).test(style)){
				tinymce.activeEditor.formatter.apply('textindent', {value : '0'});
			}else{
				tinymce.activeEditor.formatter.apply('textindent', {value : '2em'});
			}
			editor.focus();
		}
	  })
	});
})();

textindent(首行缩进)插件下载地址https://gitee.com/chen_jia_hao/TinyMCE/

下载好之后,将textindent目录放进tinymce中的plugin目录,即可。怎么配置和官方插件一致。

 

更多内容后续再继续补充...

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中有很多富文本编辑器的选择,其中一个常用的是TinyMCE。要在Vue 3中使用TinyMCE富文本编辑器,可以按照以下步骤进行: 1. 首先,使用npm或者yarn安装TinyMCE编辑器依赖包: ``` npm install tinymce ``` 2. 在Vue组件中引入需要的TinyMCE编辑器资源文件。有多种方式可以引入,这里以CDN引入为例: ```html <script src="https://cdn.jsdelivr.net/npm/tinymce@5"></script> ``` 3. 创建一个Vue组件,并在其中添加一个textarea元素作为编辑器容器: ```html <template> <div> <textarea id="my-editor"></textarea> </div> </template> ``` 4. 在Vue组件的`mounted`钩子函数中初始化TinyMCE编辑器,并指定其选项和回调函数: ```javascript <script> import { onMounted } from 'vue'; export default { mounted() { onMounted(() => { tinymce.init({ selector: '#my-editor', height: 500, plugins: 'advlist autolink lists link image charmap print preview anchor', toolbar: 'undo redo | formatselect | bold italic backcolor | \ alignleft aligncenter alignright alignjustify | \ bullist numlist outdent indent | removeformat | help', setup: (editor) => { editor.on('change', () => { this.$emit('input', editor.getContent()); }); }, }); }); }, }; </script> ``` 这里的选项和回调函数可以根据实际需要进行配置,你可以根据TinyMCE的文档来设置更多的选项。 5. 最后,在使用该组件的父组件中,可以通过`v-model`来双向绑定富文本编辑器的内容: ```html <template> <div> <RichTextEditor v-model="content" /> <div> <h3>输出的内容:</h3> <div v-html="content"></div> </div> </div> </template> <script> import RichTextEditor from './RichTextEditor.vue'; export default { components: { RichTextEditor, }, data() { return { content: '', }; }, }; </script> ``` 这样,就可以在Vue 3中使用TinyMCE富文本编辑器了。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值