official_website/static/js/rich_text.js

117 lines
4.2 KiB
JavaScript

/*
* @Descripttion : 富文本插件
* @Versions : 0.1
* @Author : foxcms team
* @Date : 2022-01-11 19:54:00
* @LastEditors : QianFox Team
* @LastEditTime : 2024-02-29 16:26:54
*/
'use strict';
// 初始化富文本插件
tinymceInit('.richText');
function tinymceInit(selector) {
tinymce.remove(selector);
tinymce.init({
resize: false, // 禁用拖动放大缩小
selector: selector,
branding: false, // 不显示右下角权限信息
convert_urls: false,
// menubar: false, // 不显示菜单栏
content_style: 'img {max-width:100%;}',
forced_root_block: 'p',
menu: {
file: { title: '文件', items: 'newdocument | preview' },
edit: { title: '编辑', items: 'undo redo | cut copy paste | selectall' },
view: { title: '查看', items: 'visualaid fullscreen' },
insert: { title: '插入', items: 'link imagesManager videosManager ' },
format: { title: '格式', items: 'bold italic underline strikethrough superscript subscript indent2em | formats | forecolor backcolor | removeformat' },
// table: { title: '表格', items: 'inserttable tableprops deletetable | cell row column' },
tools: { title: '工具', items: 'code' },
},
height: '100%',
language: 'zh_CN',
plugins: 'preview lists advlist imagesManager videosManager indent2em code fullscreen link pagebreak table paste',
toolbar:
'bold italic underline forecolor backcolor | styleselect fontselect fontsizeselect | alignleft aligncenter alignright alignjustify alignnone | table link imagesManager videosManager | blockquote bullist numlist outdent indent indent2em lineheight | removeformat pagebreak code | fullscreen',
font_formats: '微软雅黑=Microsoft YaHei,Helvetica Neue,PingFang SC,sans-serif;苹果苹方=PingFang SC,Microsoft YaHei,sans-serif;宋体=simsun,serif',
fontsize_formats: '12px 14px 16px 18px 20px 24px 36px 48px 56px 72px',
style_formats: [
{ title: '标题1', block: 'h1' },
{ title: '标题2', block: 'h2' },
{ title: '标题3', block: 'h3' },
{ title: '标题4', block: 'h4' },
{ title: '标题5', block: 'h5' },
{ title: '标题6', block: 'h6' },
{ title: '正文', block: 'p' },
],
paste_data_images: true,
images_upload_handler: function (blobInfo, succFun, failFun) {
var xhr, formData;
var file = blobInfo.blob();//转化为易于理解的file对象
xhr = new XMLHttpRequest();
xhr.withCredentials = false;
xhr.open('POST', UPIMG_URL);
xhr.onload = function() {
var json;
if (xhr.status != 200) {
failFun('HTTP Error: ' + xhr.status);
return;
}
json = JSON.parse(xhr.responseText);
if (!json || typeof json.location != 'string') {
//failFun('Invalid JSON: ' + xhr.responseText);
failFun(json.msg);
return;
}
succFun(json.location);
};
formData = new FormData();
formData.append('file', file, file.name);//此处与源文档不一样
xhr.send(formData);
}
});
}
/**
* @description: 获取富文本内容
* @param {*}
* @return {*}
* @Date: 2022-01-11 21:13:06
*/
function getRichTextContent() {
return tinyMCE.activeEditor.getContent();
}
/**
* @description: 获取富文本内容
* @param $id
* @return {*}
* @Date: 2022-01-11 21:13:06
*/
function getRTtContent(id) {
let count = tinyMCE.editors.length;
let content = '';
if (count > 0) {
for (let i = 0; i < count; i++) {
let cid = tinyMCE.editors[i].id;
if (id == cid) {
content = tinyMCE.editors[i].getContent();
break;
}
}
}
return content;
}
/**
* @description: 设置富文本内容
* @param {*} content
* @return {*}
* @Date: 2022-01-11 21:13:27
*/
function setRichTextContent(content) {
tinyMCE.activeEditor.setContent(content);
}