Categories: JavascriptTips Trik

Tombol back tutup modal bootstrap tanpa kembali ke halaman sebelumnya

Bismillaahirrohmaanirrohiim…

Jika kita membuat aplikasi web base menggunakan bootstrap, saat user membuka modal, kadangkala mereka lupa kalo tombol back akan kembali ke halaman sebelumnya, padahal inginnya hanya menutup modal saja.

Nah kode untuk menangani aksi back user jika modal terbuka adalah sebagai berikut:

// Simpan modal yang sedang terbuka
        let modalOpened = false;
        let activeModalId = null;

        // Saat modal ditampilkan
        $(document).on('shown.bs.modal', '.modal', function () {
            modalOpened = true;
            activeModalId = $(this).attr('id');

            // Tambahkan entri palsu ke history
            history.pushState({ modalOpen: true }, '');
        });
        // Saat modal ditutup
        $(document).on('hidden.bs.modal', '.modal', function () {
            modalOpened = false;
            activeModalId = null;
        });

        // Deteksi tombol back
        window.addEventListener('popstate', function (event) {
            if (modalOpened && activeModalId) {
            // Tutup modal yang sedang terbuka
            $('#' + activeModalId).modal('hide');

            // Tambahkan ulang state agar tidak keluar halaman
            history.pushState({ modalOpen: true }, '');
            }
        });

fungsi ini cukup ditaruh difooter, otomatis setiap ada modal terbuka disemua halaman, jika tombol back ditekan akan menutup modal tersebut tanpa kembali ke halaman sebelumnya.

Syaratnya:

  • Bootstrap 5.3
  • Jquery
  • modal harus punya ID

Demikian semoga bermanfaat.

Bagikan
rasupe

Recent Posts

Cara Mematikan Mode SSL Virtualmin Webmin

Bismillaahirrohmaanirrohiim... masalah muncul saat akses https://ipaddress:10000 muncul seperti ini Error – Document follows This web…

7 days ago

eBook: menjadi kaya dimasa kini dan masa depan

Bismillahirrohmaanirrohiim... Ebook ini menghadirkan wawasan mendalam mengenai pergeseran kekayaan dari uang, aset, tanah, dan bahan…

3 weeks ago

Kode css yang berguna

Bismillaahirrohmaanirrohiim... Berikut ini kumpulan css yang berguna, untuk mengingat saja. Input atau button delay saat…

4 weeks ago

Grouping warna pada tabel dengan PHP

Bismillaahirrohmaanirrohiim... Berikut ini cara grouping warna baris pada tabel dengan PHP, dimana jika ada kode…

1 month ago

CMS Website Desain Interior – PHP MySQL

CMS (Content Management System) Web untuk Desain Interior adalah solusi lengkap untuk mempresentasikan bisnis desain…

2 months ago

Source code Template website sekolah dengan react js

Bismillaahirrohmaanirrohiim... Berikut ini source code yang dapat dimodifikasi untuk membuat front end website sekolah dengan…

2 months ago