富文本编辑器 kindeditor 使用整理

news2024/11/19 3:49:59

kindeditor富文本编辑器忘记什么时候添加到项目中了,最近做一个功能需要在原有编辑器上自定义添加一些固定内容,于是对着编辑器文档研究了一番,在这里做一个使用方式整理。

1.下载kindeditor

下载地址如下:

https://github.com/kindsoft/kindeditor/releases/download/v4.1.11/kindeditor-4.1.11-zh-CN.zip

2.部署编辑器

解压下载安装包

 

把富文本所有文件放在你的网站根目录或静态文件的位置。

 

3.查看demo

查看php demo效果,发现没有效果。

修改kindeditor/php/demo.php

<script charset="utf-8" src="../kindeditor.js"></script>

改为:

<script charset="utf-8" src="../kindeditor-all.js"></script>

 

4.创建编辑器

添加textarea输入框

<textarea id="editor_id" name="content" style="width:700px;height:300px;">
<strong>HTML内容</strong></textarea>

添加js脚本

<script charset="utf-8" src="./kindeditor/kindeditor-all.js"></script>
<script charset="utf-8" src="./kindeditor/lang/zh-CN.js"></script>
<script>
    KindEditor.ready(function (K) {
        window.editor = K.create('#editor_id');
    });
</script>

5.修改编辑器

设置编辑器高度、宽度、不可拖动

// 创建编辑器
KindEditor.ready(function (K) {
    window.editor = K.create('#editor_id', {
        width:'800px',
        height:'800px',
        resizeType:0,
    });
});

属性有很多,这里只是举例。参数列表可查看文档

KindEditor 4.x Documentation

6.获取html

增加按钮和点击事件

<button onclick="getContent()">获取html</button>

增加js脚本

// 获取编辑器html内容
function getContent() {
    // 取得HTML内容
    html = editor.html();
    // 同步数据后可以直接取得textarea的value
    editor.sync();
    html = document.getElementById('editor_id').value;
    // 设置HTML内容
    //editor.html('HTML内容');
    console.log(html)
}

效果

 

 

7.弹出框

增加弹出框操作按钮

<button id="popup">弹窗</button>

增加弹出框脚本

// 创建编辑器
KindEditor.ready(function (K) {
    window.editor = K.create('#editor_id', {
        width:'800px',
        height:'400px',
        resizeType:0,
    });

    // 弹出框
    K('#popup').click(function() {
        // 取得HTML内容
        html = editor.html();
        // 同步数据后可以直接取得textarea的value
        editor.sync();
        // KindEditor Node API
        html = K('#editor_id').val();

        let dialog = K.dialog({
            width : 500,
            title : '测试窗口',
            body : '<div>' + html + '</div>',
            closeBtn : {
                name : '关闭',
                click : function(e) {
                    dialog.remove();
                }
            },
            yesBtn : {
                name : '确定',
                click : function(e) {
                    alert(this.value);
                }
            },
            noBtn : {
                name : '取消',
                click : function(e) {
                    dialog.remove();
                }
            }
        });
    });
});

效果

 

8.多语言

Html内容

<select name="lang">
    <option value="en">English</option>
    <option value="zh-CN">简体中文</option>
    <option value="zh-TW">繁體中文</option>
    <option value="ko">Korean</option>
    <option value="ar">Arabic</option>
</select>
<textarea id="editor_id" name="content" style="width:700px;height:300px;">
<strong>HTML内容</strong></textarea>

多语言脚本

// 创建编辑器
KindEditor.ready(function (K) {
    // 多语言
    K('select[name=lang]').change(function() {
        if (window.editor) {
            window.editor.remove();
            window.editor = null;
        }
        window.editor = K.create('#editor_id', {
            langType : this.value
        });
    });
    K('select[name=lang]').change();
});

效果

 

9.自定义插入内容

自定义插入内容,并非是在原有表单上增加,而是通过编辑器insertHtml属性,另外点击按钮或者其他元素来向编辑器当前光标添加内容

Html内容

<textarea id="editor_id" name="content" style="width:700px;height:300px;">
<strong>HTML内容</strong></textarea>

<button onclick="getContent()">获取html</button>
<button id="popup">弹窗</button>
<button id="addtable">添加表格</button>
<button id="addimg">添加图片</button>

脚本设置

// 创建编辑器
KindEditor.ready(function (K) {
    window.editor = K.create('#editor_id', {
        width:'700px',
        height:'200px',
        resizeType:0,
    });

    K("#addtable").click(function(){
       K.insertHtml('#editor_id', '<table style="width:100%;" cellspacing="0" cellpadding="2" bordercolor="#000000" border="1">\n' +
           '\t<tbody>\n' +
           '\t\t<tr>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\tID<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t名称<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t性别<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t爱好<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t</tr>\n' +
           '\t\t<tr>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t1<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t张三<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t男<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t喜欢打篮球<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t</tr>\n' +
           '\t\t<tr>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t2<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t李四<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t女<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t\t<td>\n' +
           '\t\t\t\t喜欢偶像剧<br />\n' +
           '\t\t\t</td>\n' +
           '\t\t</tr>\n' +
           '\t</tbody>\n' +
           '</table>');
    });

    K("#addimg").click(function () {
        K.insertHtml('#editor_id', '<img src="./images/test1.png" alt=""/>');
    });
});

效果

设置好html内容,光标放到内容中间

点击添加表格、添加图片

 

可看到表格和图片增加到了当前光标处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频平台。。。。 。

1.py 读取图片视频流 from flask import Flask from flask import render_template import os images_path_list[‘D:\imgs\’filename for filename in os.listdir(‘D:\imgs\’) if filename.endswith(‘.jpg’)] print(images_path_list) def return_img_stream(img_local_p…

城市内涝监测预警系统解决方案

一、方案背景 城市化进程的逐渐加快&#xff0c;城市内人口大量增多&#xff0c;交通运输压力增大&#xff0c;城市建设越来越密集&#xff0c;道路铺建面积越来越多&#xff0c;城市化的发展改变了城市区域的地表环境&#xff0c;致使城市雨水不能像农村或是古代雨水那样&…

JVM调优神器,运用 Arthas 释放 Java应用性能的全部潜力

Arthas、jstack、jstat 和 jmap 都是 Java 调优工具&#xff0c;但它们之间有以下区别&#xff1a; Arthas 是一款全新的 Java 诊断与调试工具&#xff0c;不仅可以执行传统的 JVM 监控命令&#xff0c;还提供了许多其他高级特性&#xff0c;如实时监控、动态修改代码、反编译…

什么是容器

什么是容器 一&#xff1a;概念二&#xff1a;容器API类图2.1 Collection2.2 Set2.3 List2.4 Map 三&#xff1a;详细解释3.1 Collection接口3.1.1 Collection用法 3.2 Iterator接口3.3 List接口3.4 Comparable接口 四&#xff1a;如何选择数据结构4.1 衡量标准&#xff1a;读的…

CRM系统本地部署和云部署的优缺点

众所周知&#xff0c;CRM系统部署方式有两种&#xff0c;分别是本地部署和云部署。两者各有优缺点&#xff0c;企业可以按照自身的需求来进行选择。下面说说CRM不同部署方式的优缺点。 CRM本地部署 本地部署是指将CRM系统安装在企业自己的服务器上&#xff0c;并由企业自行维…

网工届封神的五条命令

文章目录 前言一、PING:测试与目标主机的连通性二、IPCONFIG:显示网络适配器的IP地址三、tracert:测试到达目标主机的路径四、arp -a:查询本机高速缓存项目五、route print&#xff1a;查看计算机路由表中的项目 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#…

【密码产品篇】VPN产品密钥体系结构

【密码产品篇】VPN产品密钥体系结构 VPN产品只有"设备密钥"是"非对称密钥"—【蘇小沐】 IPSec VPN密钥体系 IPSec VPN密钥体系&#xff1a;设备密钥、工作密钥、会话密钥。 IPsec VPN作用设备密钥非对称密钥对&#xff0c;包括签名密钥对和加密密钥对&a…

axios 的 qs库

1.axios官网中提到的qs库 axios官网 2. content-type和 参数 的关系 content-type : application/json&#xff0c;要求的参数格式是JSON {a:c,b:d }content-type :application / x-www-form-urlencoded 要求的参数格式是键值对拼接的方式 :keyvalue&keyvalue ac&bd…

Powerflex ready node

1 网络交换机 需要配置 2 网卡配置 3 磁盘残留信息清楚 4 磁盘顺序如何设置固定 特别是sda这块 #rpm -qa | grep EMC --查看当前安装的EMC Powerflex组件信息 安装客户端注意 需要使用如下 rpm --import RPM-GPG-KEY-ScaleIO #MDM_IP10.10.10.xx,10.10.20.xx rpm -i EMC-…

webpack将vue3单页面应用改造成多页面应用

上篇文章搞了个单页面vue&#xff0c;现在要将其改成多页面&#xff0c;只是简单尝试&#xff0c;给了例子 其实也就是改个webpack的入口和html模版的配置&#xff0c;其他的话&#xff0c;每个页面都有自己的vue和路由实例&#xff0c;pinia的话就共享吧 &#xff01;import…

界面控件DevExpress Blazor UI v22.2 - 报表、富文本编辑器组件增强

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具&#xff0c;该组件拥有众多新产品和数十个具有高影响力的功能&#xff0c;可为桌面、Web和移动应…

Linux做爬虫被封IP怎么办

如果您的 Linux 爬虫被目标网站封禁了 IP 地址&#xff0c;可以考虑以下几种解决方案&#xff1a; 1、切换 IP 地址 您可以使用代理服务器或 PPTP 等工具来改变您的 IP 地址。这些工具可以模拟不同的网络位置并使您的爬虫变得更加隐蔽。例如在 Python 中&#xff0c;可以通过…

Maven基础学习---2、Maven安装与配置

1、Maven核心程序解压与配置文件 1、Maven官网地址 首页&#xff1a; Maven – Welcome to Apache Maven(opens new window) 下载页面&#xff1a; Maven – Download Apache Maven(opens new window) 下载链接&#xff1a; 具体下载地址&#xff1a;https://dlcdn.apache.…

爱奇艺新财报:转机频频

配图来自Canva可画 今年开年&#xff0c;一部《狂飙》拉开了剧集大幕。据灯塔专业版数据显示&#xff0c;《狂飙》的全网正片播放市占率最高超过30%&#xff0c;春节期间稳定在25%以上。《狂飙》的爆火在观众群体中掀起了一波追剧狂潮&#xff0c;除了一路“狂飙”的收视率外&…

mysql,oracle使用区别

1.1concat&#xff0c;concat_ws&#xff0c;group_concat 配置方式 临时&#xff1a;SET SESSION group_concat_max_len 10240; 永久&#xff1a;配置文件my.ini增加group_concat_max_len10240 查看配置&#xff1a;show variables like group_concat_max_len; 2.1oracle-sta…

【C++】22.单例模式+类型转换

1.单例模式 1定义 之前已经学过一些设计模式 迭代器模式 -- 基于面向对象三大特性之一的 封装设计出来的 用一个迭代器类封装以后 不暴露容器结构的情况下 统一的方式访问修改容器中的数据 适配器模式 -- 体现的是一种复用 还有一些常见的设计模式如:工厂模式 装饰器模式…

定义制造业操作(定义 MES/MOM 系统)

制造业操作包含众多工厂级活动&#xff0c;涉及设备&#xff08;定义、使用、时间表和维护&#xff09;、材料&#xff08;识别、属性、位置和状态&#xff09;、人员&#xff08;资格、可用性和时间表&#xff09;&#xff0c;以及这些资源与包含其信息碎片的众多系统之间的互…

BFT 最前线 | 腾讯发布Q1季报;超2000伙伴测试阿里云通义千问;黄仁勋:芯片是NVIDIA加速与AI计算的的“理想应用”

原创 | 文 BFT机器人 AI视界 TECHNOLOGY NEWS 01 阿里云&#xff1a;超2000伙伴测试通义千问 行业专属大模型将成趋势 2023阿里云常州峰会上&#xff0c;阿里云智能中国区总裁黄海清透露&#xff1a;目前通义千问大模型已有超2000个合作伙伴进行测试。未来大模型面向各行各…

微信视频怎么录屏?2个方法教您轻松录制!

案例&#xff1a;怎么录制微信视频通话&#xff1f; 【我在和家人或者朋友打微信视频电话时&#xff0c;总是会发生一些有趣的事情&#xff0c;我想把这些美好的画面通过录屏记录下来。但我不知道如何录制微信视频通话&#xff1f;有没有大佬支个招&#xff01;】 微信视频通…

macOS Big Sur 11.7.7 (20G1345) 正式版 ISO、PKG、DMG、IPSW 下载

本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 5 月 18 日&#xff08;北京…