AppsScript WebApp中Bootstrap v5.3导航栏下拉菜单失效问题
Bootstrap 5.3导航栏下拉菜单在Apps Script WebApp中失效的解决方案
问题核心:代码重复引入Bootstrap JavaScript文件引发冲突,导致依赖JS交互的下拉菜单功能失效;而搜索按钮属于纯表单提交,无需Bootstrap JS支持,因此可正常工作。
问题代码的错误点
你同时引入了bootstrap.bundle.min.js(已包含Popper.js和Bootstrap核心JS功能)、独立的Popper.js以及bootstrap.min.js,重复加载会破坏JS交互逻辑,直接导致下拉菜单无法正常展开。
修正后的HTML代码
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>About</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous"> </head> <body class="body"> <nav class="navbar navbar-expand-lg bg-body-tertiary"> <div class="container-fluid"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Dropdown </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">Action</a></li> <li><a class="dropdown-item" href="#">Another action</a></li> <li><hr class="dropdown-divider"></li> <li><a class="dropdown-item" href="#">Something else here</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link disabled">Disabled</a> </li> </ul> <form class="d-flex" role="search"> <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success" type="submit">Search</button> </form> </div> </div> </nav> <h1>Hello, world!</h1> <!-- 仅保留包含Popper的Bootstrap Bundle文件即可 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script> </body> </html>
验证步骤
- 将Apps Script项目中
about.html的内容替换为上述修正后的代码 - 确保
Code.js代码保持不变:
function doGet(request) { return HtmlService.createTemplateFromFile('about') .evaluate(); }
- 重新部署WebApp,测试导航栏下拉菜单即可正常展开。
内容的提问来源于stack exchange,提问作者Das Boomer
相关产品推荐
相关产品推荐

