Мой код зависит как от Bootstrap 4, так и от Popper.js.Bootstrap имеет связанный JS-файл, который включает в себя Popper.js, но я не могу понять, как определить, загружена ли связанная или не связанная версия.
Если включены bootstrap.js и popper.jsотдельно я могу проверить, определено ли Popper
, но если включен bootstrap.bundle.js, Popper
не определено, но компоненты Bootstrap, использующие Popper, все еще работают.
Я могу использовать что-то вроде typeof $().modal
, чтобы проверить, включен ли начальный загрузчик, но это верно как для связанной, так и не связанной версии.
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Bundle Test</title>
<!-- Load jQuery JS -->
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="crossorigin="anonymous"></script>
<!-- Load Bootstrap Bundled JS -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
console.log('jQuery type is: ' + typeof $);
console.log('Bootstrap modal type is: ' + typeof $().modal);
console.log('Popper type is: ' + typeof Popper);
});
</script>
</head>
<body>
</body>
</html>
В этом примере я ожидал бы, что Popper
будет функцией, поскольку она включена впакет Bootstrap, но это undefined
.