Bootstrap 5导航栏下拉菜单Popper功能失效问题求助
解决Bootstrap 5.3下拉菜单报错:Uncaught TypeError: Popper__namespace.createPopper is not a function
核心原因
这个错误几乎都是Popper版本不兼容、引入方式错误或文件加载异常导致的。Bootstrap 5.3依赖Popper v2.x的UMD版本(该版本会暴露全局Popper__namespace对象),若加载的Popper版本不对、路径错误或文件损坏,就会触发该报错。
分步解决方案
1. 确认Popper版本与格式
- Bootstrap 5.3必须搭配Popper v2.x,禁止使用v1.x或v3.x版本。
- 下载Popper时,选择UMD格式的文件(通常命名为
popper.min.js或popper.js),不要选ES模块版本(这类版本不会暴露全局对象)。
2. 检查文件加载状态
打开浏览器开发者工具(F12)→ 切换到「Network」标签,刷新页面:
- 确认
popper.js和bootstrap.js都能正常加载(状态码为200),没有404错误。 - 若出现404,检查文件实际存放路径是否与HTML中引入的路径一致(比如是否确实放在
js/文件夹下)。
3. 修正脚本引入方式
方式一:单独引入Popper + Bootstrap
确保引入顺序正确,且仅引入UMD版本的Popper:
<script src="js/popper.min.js"></script> <script src="js/bootstrap.js"></script>
方式二:使用Bootstrap Bundle文件
Bootstrap的bootstrap.bundle.js(或压缩版bootstrap.bundle.min.js)已内置兼容的Popper,无需单独引入Popper,直接替换为:
<script src="js/bootstrap.bundle.min.js"></script>
⚠️ 注意:使用bundle文件时,不要同时单独引入Popper,否则会引发版本冲突。
4. 清除浏览器缓存
浏览器可能缓存了旧的、损坏的JS文件,按Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新页面,加载最新文件。
5. 排查脚本冲突
检查页面中是否存在干扰脚本:
- 旧版本的jQuery(Bootstrap 5无需jQuery,引入可能引发冲突)。
- 重复引入的Popper或Bootstrap文件。
6. 重新下载文件
若上述步骤均无效,可能是本地下载的Popper或Bootstrap文件损坏,重新下载对应版本的官方文件即可。
验证你的下拉菜单HTML
你的下拉菜单代码是正确的,包含了必要属性(data-bs-toggle="dropdown"、aria-expanded="false")和类名,无需修改。
内容的提问来源于stack exchange,提问作者tylerbryceobier
相关产品推荐
相关产品推荐

