如何简易实现富文本编辑器一样的功能

2025-10-27 12:41:11

1、我们创建一个div,给它一个id--box,重要的在这里-->contenteditable="true",不然div的内容我们是编辑不了的,<p id="box" contenteditable="true">哈哈哈我是测试文本

2、然后我们再创建一个下拉框select,用来选择需要执行的操作。

<select id="h">    <option>H1</option>    <option>H2</option>    <option>H3</option></select>

3、最后就是写脚本来执行了。

$("#h").change(function () {    document.execCommand("formatBlock",false,

$("#h").val())});

这句代码的意思是当下拉框文本内容改变的时候,触发一个change事件,然后执行代码。代码

改变的是鼠标选择文本。

$("#h").val()是获取下拉框的值,

formatBlock-->《添加一个HTML块式标签在包含当前选择的行, 如果已经存在了,更换包含该

行的块元素 (在 Firefox中, BLOCKQUOTE 是一个例外 -它将包含任何包含块元素). 需要提供

一个标签名称字符串作为参数。几乎所有的块样式标签都可以使用(例如. "H1", "P", "DL", 

"BLOCKQUOTE"). (IE浏览器仅仅支持标题标签 H1 - H6, ADDRESS, 和 PRE,使用时还必须包含

标签分隔符 < >, 例如 "<H1>".)》。

false-->《是否展示用户界面》

execCommand方法具体作用在MDN里面有,我这给个直链就不重复说明了。

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand

4、完整代码:

<html>

<head>

   <title>功能测试</title>

   <script src="js/jquery.min.js"></script>

</head>

<body>

<select id="h">

   <option>H1</option>

   <option>H2</option>

   <option>H3</option>

</select>

<p id="box" contenteditable="true">哈哈哈我是测试文本

<input type="text">

<script>

   $("#h").change(function () {

       document.execCommand("formatBlock",false,$("#h").val());

   });

</script>

</body>

</html>

5、其他功能类似,只不过是参数存在不同而已,我说了下大概的原理.嗯~大概就这样

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢