Bootstrap 下拉菜单或输入类型收音机不起作用

Bootstrap dropdown or input type radio doesn`t work

我正在使用电子 (electron@12.0.0) 和 bootstrap(bootstrap@5.0.0-beta3)。 当我尝试在 bootstrap 上使用下拉菜单或其他一些东西时,它根本不起作用。我不知道我做错了什么,即使我在没有电子的浏览器中打开 index.html,它仍然 shows like this(Dropdown doesn't work when i click it).When i use fiddle its shows like this。 我的renderer.js是空的,我的preload.js是这样的

window.addEventListener('DOMContentLoaded', () => {
  const replaceText = (selector, text) => {
    const element = document.getElementById(selector)
    if (element) element.innerText = text
  }

  for (const type of ['chrome', 'node', 'electron']) {
    replaceText(`${type}-version`, process.versions[type])
  }
})

我的全部 index.html 都在这里 :

<!DOCTYPE html>
<html>

  <head>
    <meta charset="UTF-8" />
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.1/dist/umd/popper.min.js" integrity="sha384-SR1sx49pcuLnqZUnnPwx6FCym0wLsk5JZuNx2bPPENzswTNFaQU1RDvt3wT4gWFG" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.min.js" integrity="sha384-j0CNLUeiqtyaRmlzUHCPZ+Gy5fQu0dQ6eZ/xAww941Ai1SxSY+0EQqNXNE6DZiVc" crossorigin="anonymous"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
  </head>

  <body>
    <div class="container-fluid align-items-start vh-100">
      <div class="row">
        <div class="col-xs d-flex drag-region bg-secondary" style="width: 250px;height: 145px;">

        </div>
        <div class="col">
          <div class="row justify-content-end bg-dark" style="height: 32px;">
            <header id="titleBar">
              <div id="drag-region">
                <div id="window-controls">
                  <a onclick="state('mini')" id="min-button"><img class="icon" srcset="./static/icons/min-w-10.png 1x, ./static/icons/min-w-12.png 1.25x, ./static/icons/min-w-15.png 1.5x, ./static/icons/min-w-15.png 1.75x, ./static/icons/min-w-20.png 2x, ./static/icons/min-w-20.png 2.25x, ./static/icons/min-w-24.png 2.5x, ./static/icons/min-w-30.png 3x, ./static/icons/min-w-30.png 3.5x" draggable="false" /></a>
                  <a onclick="state('max')" id="max-button"> <img class="icon" srcset="./static/icons/max-w-10.png 1x, ./static/icons/max-w-12.png 1.25x, ./static/icons/max-w-15.png 1.5x, ./static/icons/max-w-15.png 1.75x, ./static/icons/max-w-20.png 2x, ./static/icons/max-w-20.png 2.25x, ./static/icons/max-w-24.png 2.5x, ./static/icons/max-w-30.png 3x, ./static/icons/max-w-30.png 3.5x" draggable="false" /></a>
                  <a onclick="state('restore')" id="restore-button"><img class="icon" srcset="./static/icons/restore-w-10.png 1x, ./static/icons/restore-w-12.png 1.25x, ./static/icons/restore-w-15.png 1.5x, ./static/icons/restore-w-15.png 1.75x, ./static/icons/restore-w-20.png 2x, ./static/icons/restore-w-20.png 2.25x, ./static/icons/restore-w-24.png 2.5x, ./static/icons/restore-w-30.png 3x, ./static/icons/restore-w-30.png 3.5x" draggable="false" /></a>
                  <a onclick="state('close')" id="close-button"><img class="icon" srcset="./static/icons/close-w-10.png 1x, ./static/icons/close-w-12.png 1.25x, ./static/icons/close-w-15.png 1.5x, ./static/icons/close-w-15.png 1.75x, ./static/icons/close-w-20.png 2x, ./static/icons/close-w-20.png 2.25x, ./static/icons/close-w-24.png 2.5x, ./static/icons/close-w-30.png 3x, ./static/icons/close-w-30.png 3.5x" draggable="false" /></a>
                </div>
              </div>
            </header>
          </div>
          <div class="row row-cols-1" style="height: calc(100% - 32px);">
            <div class="col d-flex bg-success" style="height: 81px;">
              <div class="align-middle">
                <h1 id="navTitle">Title</h1>
              </div>
            </div>
            <div class="col-fluid bg-dark" style="height: 32px;">
              <div class="row">
                <div class="col d-flex">
                  <div class="btn-group btn-group-toggle" data-toggle="buttons">
                    <label class="btn btn-secondary active">
                      <input type="radio" name="options" id="option1" checked> Active
                    </label>
                    <label class="btn btn-secondary">
                      <input type="radio" name="options" id="option2"> Radio
                    </label>
                    <label class="btn btn-secondary">
                      <input type="radio" name="options" id="option3"> Radio
                    </label>
                  </div>
                </div>
                <div class="col-auto d-flex" style="width: fit-content;height: 32px;">
                  <form class="form-inline d-flex">
                    <input class="form-control mr-sm-2 text-white" type="search" placeholder="Search" aria-label="Search">
                    <button class="btn btn-sm btn-outline-secondary my-2 my-sm-0 align-baseline" type="submit">Search</button>
                  </form>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="row align-self-stretch" style="height: calc(100% - 145px);">

        <div class="col-xs d-flex align-self-stretch bg-dark" style="width: 250px;">
          <div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown button
            </button>
            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <a class="dropdown-item" href="#">Something else here</a>
            </div>
          </div>
        </div>

        <div class="col d-flex bg-secondary">

        </div>
      </div>
    </div>

    <script src="./renderer.js"></script>
  </body>

</html>

您的 HTML 文件中的依赖项有问题。

这是更新后的 HTML 代码。

<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
   <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    </head>
<body>
<div class="btn-group btn-group-toggle" data-toggle="buttons">
  <label class="btn btn-dark active">
    <input type="radio" name="options" id="option1" checked> Active
  </label>
  <label class="btn btn-dark">
    <input type="radio" name="options" id="option2"> Radio
  </label>
  <label class="btn btn-dark">
    <input type="radio" name="options" id="option3"> Radio
  </label>
</div>

          <div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown button
            </button>
            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <a class="dropdown-item" href="#">Something else here</a>
            </div>
          </div>
</body>
</html>

我找不到任何答案并放弃。我废弃了整个项目并用 electron-forge.It 重写了!而且我没有 preload.jsrenderer.js 电子锻造。