当前位置:首页 > JavaScript

js实现编辑

2026-02-01 10:45:25JavaScript

JavaScript 实现文本编辑功能

使用 contenteditable 属性可以让 HTML 元素变为可编辑状态。以下是一个简单的实现示例:

<div id="editor" contenteditable="true">点击这里开始编辑</div>

获取和设置编辑内容

通过 JavaScript 可以轻松获取和设置可编辑区域的内容:

const editor = document.getElementById('editor');

// 获取内容
const content = editor.innerHTML;

// 设置内容
editor.innerHTML = '<strong>新内容</strong>';

实现富文本编辑功能

使用 document.execCommand 可以实现基本的富文本编辑功能,虽然这个 API 已废弃,但在许多浏览器中仍然可用:

js实现编辑

function formatText(command, value = null) {
    document.execCommand(command, false, value);
}

现代替代方案

推荐使用更现代的库如 ProseMirrorTiptap 来实现富文本编辑:

import { Editor } from 'tiptap';

new Editor({
    element: document.getElementById('editor'),
    content: '<p>初始内容</p>',
});

处理编辑事件

监听输入事件可以实时获取编辑内容:

js实现编辑

editor.addEventListener('input', (e) => {
    console.log('内容已更改:', e.target.innerHTML);
});

保存编辑内容

可以将编辑内容保存到本地存储或发送到服务器:

function saveContent() {
    localStorage.setItem('editorContent', editor.innerHTML);
    // 或使用 fetch 发送到服务器
}

实现撤销/重做功能

维护一个编辑历史数组可以实现简单的撤销功能:

let history = [];
let historyIndex = -1;

editor.addEventListener('input', () => {
    history = history.slice(0, historyIndex + 1);
    history.push(editor.innerHTML);
    historyIndex++;
});

function undo() {
    if (historyIndex > 0) {
        historyIndex--;
        editor.innerHTML = history[historyIndex];
    }
}

标签: 编辑js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…