Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana Anda Boleh Mengesan Klik Butang Belakang dalam Penyemak Imbas?

Bagaimana Anda Boleh Mengesan Klik Butang Belakang dalam Penyemak Imbas?

DDD
DDDasal
2024-10-22 14:02:02900semak imbas

How Can You Detect Back Button Clicks in a Browser?

Kesan Klik Butang Belakang dalam Penyemak Imbas

Untuk menjejaki peristiwa navigasi pengguna, pendengar acara window.onbeforeunload boleh digunakan. Walau bagaimanapun, peristiwa ini tercetus bukan sahaja apabila butang belakang ditekan tetapi juga semasa muat semula halaman atau muat semula.

Penyelesaian:

Untuk menyelesaikan isu ini, kod berikut menggunakan acara window.onload boleh digunakan:

window.onload = function () {
    if (typeof history.pushState === "function") {
        history.pushState("jibberish", null, null);
        window.onpopstate = function () {
            history.pushState('newjibberish', null, null);
            // Handle back/forward navigation here
        };
    }
    else {
        var ignoreHashChange = true;
        window.onhashchange = function () {
            if (!ignoreHashChange) {
                ignoreHashChange = true;
                window.location.hash = Math.random();
                // Handle hash change navigation here
            }
            else {
                ignoreHashChange = false;
            }
        };
    }
}

Penyelesaian ini membezakan antara navigasi belakang dan acara lain seperti muat semula dan muat semula, menawarkan pengendalian klik butang belakang yang tepat. Ia beroperasi dengan lancar dalam penyemak imbas seperti Chrome dan Firefox.

Atas ialah kandungan terperinci Bagaimana Anda Boleh Mengesan Klik Butang Belakang dalam Penyemak Imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn