#html #css #twitter-bootstrap #bootstrap-5
#HTML #css — код #twitter-bootstrap #начальная загрузка-5
Вопрос:
Я пытаюсь создать выпадающую кнопку с помощью Bootstrap 5, но я получаю сообщение об ошибке:
Неперехваченная ошибка типа: t.createPopper не является функцией
Это мой HTML-код:
<div class="dropdown">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-expanded="false">
Dropdown link
</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
Это сценарии, которые я использую:
<script src="assets/scripts/vendors/jquery-3.5.1.min.js"></script>
<script src="assets/scripts/vendors/popper.min.js"></script>
<script src="assets/scripts/vendors/bootstrap.min.js"></script>
Ответ №1:
Вы можете использовать bootstrap.bundle.min.js
или bootstrap.bundle.js
как автономную библиотеку, содержащую Popper. Бывший:-
<script src="src/jquery-ui.min.js"></script>
<script src="src/bootstrap.bundle.min.js"></script>
Это решило мою проблему. Надеюсь, это кому-то поможет.
Комментарии:
1. Можно подтвердить использование пакета вместо импорта popper.js и bootstrap.js отдельно устраняется проблема.
Ответ №2:
Ваш код работает, но , возможно , библиотека Bootstrap или Popper не завершена.. используйте CDN вместо автономной библиотеки
Официальная документация Bootstrap :: https://getbootstrap.com/docs/5.0/getting-started/introduction /
JS Возится с CDN :: https://jsfiddle.net/9jbswr6d/1 /
<html>
<head>
<!--official Bootstrap CDN-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-
beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-
giJF6kkoqNQ00vy HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1"
crossorigin="anonymous">
</head>
<body>
<div class="dropdown">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button"
id="dropdownMenuLink" data-bs-toggle="dropdown" aria-expanded="false">
Dropdown link
</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-
beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-
ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"
crossorigin="anonymous"></script>
</body>
</html>
Комментарии:
1. автономная версия предотвращает взлом через посредника. это правильный подход.
2. @RickyLevi Во-первых: я не думаю, что вас могут взломать при использовании CDN. Во-вторых: лично я предпочитаю CDN, так как они быстрее, чем автономная библиотека. Автономным библиотекам нужен быстрый хостинг, чтобы ваш сайт работал быстро, иначе он будет работать медленно.
3. мир изменился, читайте в owasp.org . почти каждая высокотехнологичная компания настоятельно рекомендует никогда не использовать ссылку cdn (только для тестирования / 1-минутных примеров кодирования, но никогда для производства), это небезопасно. ссылка: cheatsheetseries.owasp.org/cheatsheets /. … возможно, bootstrap — это то, чему вы могли бы доверять. но даже с
integrity
учетом того, что их код может измениться для сбора информации или чего-то такого, что вам не нужно. я просто записываю это — чтобы другие люди знали и учитывали. не специально для вашего ответа — вот почему я не понизил его рейтинг.
Ответ №3:
Проблема связана с версией popper. Я не знаю, что они сделали, но с последней версией popper выпадающий список больше не работает.
Я использовал версию 1.14.3, чтобы заставить ее работать в этой скрипке: https://jsfiddle.net/e5n1astx /
<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">
<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>
Код, который я использовал выше.
Ссылка на версию popper, которую я использовал: https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js
Ответ №4:
Необходимо импортировать popper js в ваш код. Перейдите по ссылке: https://popper.js.org / После этого он будет работать нормально
<script src="https://unpkg.com/@popperjs/core@2"></script>
Комментарии:
1. Рассмотрите возможность редактирования вашего ответа, чтобы описать, как этот ответ решает проблему, описанную в вопросе.
2. Пожалуйста, постарайтесь как можно лучше ответить на вопрос, не включая ссылки на другие сайты. Вы можете сделать это, объяснив, что было сказано на внешнем сайте.
Ответ №5:
это спасло меня:
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css" rel="stylesheet" >
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1 K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2 l" crossorigin="anonymous">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<!--Bootsrap 4 CDN-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<!--Fontawesome CDN-->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt Y8vEf7N7fWAU" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu">
<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>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C OGpamoFVy38MVBnE IbbVYUew OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU 6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2 xf0Uwh9KtT" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384- YQ4JLhjyBLPDQt//I STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
Комментарии:
1. Пожалуйста, укажите дополнительные подробности в своем ответе. Как написано в настоящее время, трудно понять ваше решение.