Как определить, загружен ли bootstrap.js или bootstrap.bundle.js? - PullRequest
0 голосов
/ 27 мая 2019

Мой код зависит как от 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.

1 Ответ

0 голосов
/ 27 мая 2019

Вы можете попробовать проверить, доступен ли правильный метод в глобальном пространстве. И если это даст вам истину, то вы знаете, что bootstrap.js и popper.js включены отдельно, иначе это bootstrap.bundle.js

...