document.execCommand()方法处理html数据时常用语法格式如下:
document.execCommand(sCommand[,交互方式, 动态参数])
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>如何利用execCommand做一个简单的富文本编译器</title>
<style>
xr-editor {
margin: 50px auto;
width: 1000px;
}
.nav {
display: flex;
}
button {
cursor: pointer;
}
.row {
display: flex;
width: 100%;
height: 300px;
}
.editor {
flex: 1;
position: relative;
margin-right: 20px;
padding: 10px;
outline: none;
border: 1px solid #000;
overflow-y: scroll;
}
.editor img {
max-width: 300px;
max-height: 300px;
vertical-align: middle;
}
.content {
flex: 1;
border: 1px solid #000;
word-break: break-all;
word-wrap: break-word;
overflow: scroll;
}
</style>
</head>
<body>
<div id="app">
<div class="xr-editor">
<!--按钮区-->
<div class="nav">
<button @click="execCommand('bold')">加粗</button>
<button @click="execCommand('fontname','宋体')">宋体</button>
<button @click="execCommand('foreColor','red')">红色</button>
<button @click="execCommand('fontSize','24')">24px</button>
<button @click="execCommand('formatBlock','h1')">h1</button>
<button @click="execCommand('selectAll',null)">全选</button>
<button @click="execCommand('CreateLink',true)">清除格式</button>
</div>
<!--编辑区-->
<div class="editor" contenteditable="true"></div>
</div>
</div>
</body>
<script src="https://www.jq22.com/jquery/vue.min.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
methods: {
execCommand(name,data) {
//加粗
document.execCommand(name, false, data);
}
}
})
</script>
</html>