Rumah > hujung hadapan web > tutorial js > Bagaimana Saya Boleh Mengesan Tekan Butang Belakang Penyemak Imbas Merentasi Pelayar Berbeza?

Bagaimana Saya Boleh Mengesan Tekan Butang Belakang Penyemak Imbas Merentasi Pelayar Berbeza?

Barbara Streisand
Lepaskan: 2024-12-17 03:46:24
asal
115 orang telah melayarinya

How Can I Reliably Detect Browser Back Button Presses Across Different Browsers?

Pengesanan Peristiwa Butang Belakang Penyemak Imbas Merentasi Penyemak Imbas

Mengesan gelagat butang belakang penyemak imbas menimbulkan cabaran kerana sifatnya yang tidak segerak. Walaupun beberapa kaedah wujud, seperti menggunakan window.onhashchange, mereka gagal membezakan antara elemen dalam halaman yang mencetuskan perubahan cincang dan tekan butang belakang sebenar.

Menguatkuasakan Penggunaan Butang Belakang Dalam Halaman

Dalam aplikasi satu halaman yang bergantung pada navigasi cincang, adalah penting untuk mengawal selia butang belakang kefungsian. Dengan menggunakan butang belakang dalam halaman yang mengubah suai cincang, anda boleh mengekalkan kawalan ke atas navigasi.

Menemui Penekanan Butang Belakang Penyemak Imbas

Untuk mengesan peristiwa butang belakang penyemak imbas dengan tepat , pertimbangkan pendekatan merentas platform menggunakan tuding tetikus dan biarkan peristiwa pada dokumen.

document.onmouseover = function() {
    // User's cursor is within the document area
    window.innerDocClick = true;
}

document.onmouseleave = function() {
    // User's cursor has exited the document area
    window.innerDocClick = false;
}

window.onhashchange = function() {
    if (window.innerDocClick) {
        // Navigation triggered by in-page action
    } else {
        // Browser back button was pressed
    }
}
Salin selepas log masuk

Kaedah ini menetapkan Bendera Boolean (window.innerDocClick) untuk menunjukkan sama ada kursor berada dalam kawasan dokumen. Jika cincang berubah semasa bendera palsu, ia mencadangkan agar butang belakang pelayar ditekan.

Halang Backspace daripada Mencetuskan Peristiwa Balik

Untuk menghalang kekunci backspace daripada mengaktifkan butang belakang, gunakan kod jQuery berikut:

$(function(){
    var rx = /INPUT|SELECT|TEXTAREA/i;
    $(document).bind("keydown keypress", function(e){
        if( e.which == 8 ){ // 8 == backspace
            if(!rx.test(e.target.tagName) || e.target.disabled || e.target.readOnly ){
                e.preventDefault();
            }
        }
    });
});
Salin selepas log masuk

Kod ini memintas tekanan ruang belakang dan menghalangnya daripada mencetuskan acara butang belakang jika fokus bukan pada medan input.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mengesan Tekan Butang Belakang Penyemak Imbas Merentasi Pelayar Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan