You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用纯JavaScript实现Bootstrap5多HTML页面共用可复用导航栏

多页面复用Bootstrap 5导航栏纯JS实现方案

实现逻辑

不需要引入任何前端框架,仅通过一个公共JS文件存储导航栏代码,所有页面引入该JS自动渲染导航栏,后续修改仅需调整一次JS文件即可全站点同步。

操作步骤

步骤1:根目录新建公共导航栏JS文件

创建名为navbar.js的文件,存入以下代码:

// 导航栏代码统一存放在这里,后续调整仅需修改此部分
const navHtml = `
<nav class="navbar navbar-expand-xl navbar-light">
  <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#toggleMobileMenu" aria-controls="toggleMobileMenu" aria-expanded="true" aria-label="Toggle Navigation">
    <span class="navbar-toggler-icon"></span>
    </button>
  <div class="collapse navbar-collapse show" id="toggleMobileMenu">
    <ul class="navbar-nav mx-auto">
      <li class="nav-item text-center">
        <a class="nav-link" href="index.html">首页</a>
      </li>
      <li class="nav-item text-center">
        <a class="nav-link" href="about.html">关于我们</a>
      </li>
      <li class="nav-item text-center">
        <a class="nav-link" href="crew.html">团队成员</a>
      </li>
      <li class="nav-item text-center">
        <a class="nav-link" href="flights.html">航班信息</a>
      </li>
      <li class="nav-item text-center">
        <a class="nav-link" href="events.html">活动预告</a>
      </li>
    </ul>
  </div>
</nav>
`;

// 渲染导航栏到页面容器
document.getElementById('navbar-container').innerHTML = navHtml;

// 自动给当前页对应导航添加激活状态
const currentPage = window.location.pathname.split('/').pop() || 'index.html';
document.querySelectorAll('.nav-link').forEach(link => {
  if (link.getAttribute('href') === currentPage) {
    link.classList.add('active');
    link.setAttribute('aria-current', 'page');
  }
});

步骤2:修改所有HTML页面

所有需要显示导航栏的页面,删除原有的导航栏代码,在原来放导航栏的位置添加容器:

<div id="navbar-container"></div>

然后在页面</body>标签之前,在Bootstrap 5的JS引入之后,添加公共导航栏JS的引入:

<!-- 确保Bootstrap JS先引入,再引入navbar.js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="./navbar.js"></script>

步骤3:测试验证

打开任意页面,导航栏会自动渲染,修改navbar.js里的导航内容,所有页面会同步更新,无需逐个修改。

注意事项

如果站点部署在二级子目录下,仅需要调整currentPage的路径判断逻辑即可适配。

内容的提问来源于stack exchange,提问作者Geoff Cox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:06:03