怎么在Bootstrap中集成WangEditor编辑器

梦婷酱_6358

梦婷酱_6358

2026-10-28

398人浏览

原创

wangEditor v5 不依赖 Bootstrap,与之共存需避免样式冲突:Bootstrap CSS 必须在 wangEditor CSS 之后加载,禁用其全局 box-sizing 重置,工具栏和编辑器容器须为独立 DOM 节点且不可嵌套于 Bootstrap 布局类内。

怎么在bootstrap中集成wangeditor编辑器

确认 Bootstrap 与 wangEditor v5 的兼容性问题

wangEditor v5 不依赖 jQuery 或 Bootstrap,也不再内置 Bootstrap 样式。如果你看到老教程里用 $('#divEditor').wangEditor({}) 或引入 bootstrap.min.js 才能启动,那用的是 v3/v4;v5 是纯原生 JS 实现,和 Bootstrap 共存时需手动对齐样式、避免 class 冲突。

常见错误现象:toolbar-container 被 Bootstrap 的 .btn 或 .form-control 样式覆盖,按钮变大、间距错乱;editor-container 高度塌陷或滚动异常。

  • 确保 Bootstrap CSS 在 wangEditor CSS 之后 加载,防止其 .w-e-toolbar .w-e-button 被覆盖
  • 禁用 Bootstrap 的全局 box-sizing 重置影响(如有):给编辑器容器加 box-sizing: border-box !important
  • 不要在 #toolbar-container 或 #editor-container 上直接加 class="row" 或 class="form-group" —— 这些会干扰内部 flex 布局

用 HTML + CDN 快速集成(适合非构建项目)

适用于纯静态页、Bootstrap 管理后台、或不想配构建工具的场景。注意 CDN 地址必须匹配 v5 版本(2026 年最新稳定版是 @wangeditor/editor@5.1.23)。

关键点:工具栏和编辑器容器必须是两个独立 DOM 节点,且不能嵌套在 Bootstrap 的 .input-group 或 .card-body 内部(除非显式重置 padding/margin)。

<!-- Bootstrap 5 CSS(推荐)-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"><!-- wangEditor v5 样式(必须在 Bootstrap 之后)--><link href="https://unpkg.com/@wangeditor/editor@5.1.23/dist/css/style.css" rel="stylesheet"><p></p><div class="container mt-4">
<div class="row">
<div class="col-md-8">
<!-- 工具栏容器 -->
<div id="toolbar-container" class="border rounded-top p-2"></div>
<!-- 编辑器容器(高度需显式设置)-->
<div id="editor-container" class="border rounded-bottom" style="height: 400px"></div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-header">预览</div>
<div id="preview-output" class="card-body"></div>
</div>
</div>
</div>
</div><p><!-- wangEditor JS(放在 body 底部)-->
<script src="<a%20href=" https:>https://unpkg.com/@wangeditor/editor@5.1.23/dist/index.js"></script>>
<script>
const { createEditor, createToolbar } = window.wangEditor
const editor = createEditor({
selector: '#editor-container',
html: '<p>欢迎使用</script></p><div class="aritcle_card flexRow artxards">
											<div class="artcardd flexRow">
												<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill4914" title="VPS Bootstrap"><img
														src="https://img.php.cn/upload/skill/000/000/081/179025304626966.jpg" alt="VPS Bootstrap" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
												<div class="aritcle_card_info flexColumn">
													<a rel="nofollow" href="/xiazai/skill4914" title="VPS Bootstrap" class="overflowclass">VPS Bootstrap</a>
													<p class="overflowclass">从零启动全新 VPS,完成 OpenClaw 完整部署,包括备份/恢复及恢复后验证。用于 OpenClaw 部署。</p>
												</div>
												<a rel="nofollow" href="/xiazai/skill4914" title="VPS Bootstrap" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
												</a>
											</div>
										</div>',
config: {
placeholder: '请输入内容...',
MENU_CONF: { uploadImage: { server: '/api/upload' } }
}
})
const toolbar = createToolbar({
editor,
selector: '#toolbar-container'
})

Vue3 项目中与 Bootstrap 组件共存的要点

如果你用的是 BootstrapVue / BootstrapVue3 或手写 Bootstrap 类名,@wangeditor/editor-for-vue 并非必需 —— v5 官方推荐直接用原生 createEditor + ref 挂载,更可控。

容易踩的坑:v-if 切换 tab 时未销毁 editor 实例,导致重复初始化、内存泄漏;editor.destroy() 调用时机不对,报 Cannot read property 'isDestroyed' of null。

  • 在 onBeforeUnmount 中调用 editor.destroy(),不是 onUnmounted
  • 不要把 editor-container 放在 或 内部 —— 显示前容器尺寸为 0,导致光标定位失败
  • 若使用 做回退方案,注意它和 wangEditor 的 value 同步逻辑要单向(编辑器 → textarea),避免双向绑定冲突

图片上传后样式错位或弹窗被遮挡

Bootstrap 的 z-index 默认值(如 modal 是 1055)常高于 wangEditor 的上传弹窗(默认 z-index 1000),导致点击无响应或按钮不可见。

这不是 bug,是层叠上下文叠加顺序问题。最稳妥解法是局部提升编辑器浮层层级,而非全局改 Bootstrap 变量。

  • 在 CSS 中加: .w-e-popover, .w-e-upload-img-panel { z-index: 1100 !important; }
  • 上传配置里禁用 inline 模式:config: { MENU_CONF: { uploadImage: { base64: false, customUpload: true } } },避免与 Bootstrap 的 .modal 冲突
  • 如果用了 Bootstrap 的 data-bs-toggle="modal" 触发器,确保它没绑定到 #toolbar-container 内部任意节点上

实际集成中最容易被忽略的,是编辑器容器的 height 必须为具体数值(如 400px 或 calc(100vh - 200px)),百分比高度在 flex 容器中会失效 —— 这和 Bootstrap 的栅格无关,是 CSS 渲染规则本身决定的。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2683

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5843

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6810

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6538

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

923

5

bootstrap框架介绍
bootstrap框架介绍

本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

2026.03.18

745

21

bootstrap安装教程
bootstrap安装教程

本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

2026.03.18

199

9

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

80

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

40

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
bootstrap框架基础课程
bootstrap框架基础课程

共28课时 | 5.5万人学习

兄弟连张诚UI教程Bootstrap视频教程
兄弟连张诚UI教程Bootstrap视频教程

共21课时 | 5.5万人学习

后盾网BootStrap视频教程
后盾网BootStrap视频教程

共20课时 | 5.2万人学习