Empêcher la fermeture d'une fenêtre modale Bootstrap v5

<!DOCTYPE html>
<html lang="fr">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Exemple modal</title>
    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>

    <h1>Contenu de la page</h1>

    <!-- Fenêtre modale Bootstrap sans les boutons "fermer" -->
    <div id="myModal" class="modal" tabindex="-1">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">Titre</h5>
                </div>
                <div class="modal-body">
                    <p>Corps de la fenêtre modale.</p>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-primary">Une Action</button>
                </div>
            </div>
        </div>
    </div>

    <!-- Bootstrap JS -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>

    <script>
        /* Element DOM */
        var modalElement = document.getElementById("myModal");

        /* Création d'une fenêtre modale Bootstrap JS */
        var modal = new bootstrap.Modal(modalElement, {
            /* Empêche l'utilisateur de fermer la fenêtre en cliquant à l'extérieur */
            backdrop: 'static',
            /* Empêche l'utilisateur de fermer la fenêtre en appuyant sur ECHAP */
            keyboard: false
        });
        
        /* POUR JOUER UN SON (facultatif) */

        /* Le son à jouer */
        var audio = new Audio("sound.wav");

        /* Quand l'utilisateur tente de fermer la fenêtre */
        modalElement.addEventListener("hidePrevented.bs.modal", function(event) {
            audio.play();
        });
        
        /* FIN DE LA SECTION POUR JOUER UN SON */

        /* Affiche la fenêtre modale */
        modal.show();
    </script>

</body>

</html>

Commentaires