Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mencetuskan Peristiwa `onload` dengan Amanah Selepas Klik Butang Belakang Merentasi Pelayar Berbeza?

Bagaimanakah Saya Boleh Mencetuskan Peristiwa `onload` dengan Amanah Selepas Klik Butang Belakang Merentasi Pelayar Berbeza?

Barbara Streisand
Lepaskan: 2024-12-06 03:51:10
asal
485 orang telah melayarinya

How Can I Reliably Trigger the `onload` Event After a Back Button Click Across Different Browsers?

Pengendalian Peristiwa Muat Turun Penyemak Imbas Selepas Klik Butang Belakang

Apabila menavigasi tapak web, mengklik butang belakang lazimnya tidak mencetuskan peristiwa muat JavaScript dalam kebanyakan penyemak imbas, kecuali untuk Internet Explorer ini menimbulkan cabaran untuk melaksanakan fungsi yang bergantung pada acara ini.

Walau bagaimanapun, terdapat penyelesaian silang penyemak imbas yang memanfaatkan gelagat kehadiran jQuery:

<body onunload=""><!-- This triggers a page reload -->
Salin selepas log masuk

Kod yang kelihatan tidak berbahaya ini memaksa penyemak imbas untuk memuat semula halaman dalam Safari, Opera dan Mozilla dengan menambah pendengar acara yang dimuatkan , tanpa mengira kandungan pengendali acara.

Untuk mengesahkan tingkah laku ini, sila gunakan kod berikut:

<body onunload="""><!-- This does the trick -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>
Salin selepas log masuk

Anda akan mendapati bahawa selepas menggunakan onunload, mengklik pautan dan kemudian menekan butang belakang akan mencetuskan halaman untuk memuat semula. Bandingkan kod berikut, ia tidak mempunyai onunload dan tidak akan dimuatkan semula apabila kembali:

<body><!-- Will not reload on back button -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>
Salin selepas log masuk

Penyelesaian menggunakan tingkah laku jQuery ini boleh melaksanakan fungsi seperti beban dalam pelbagai penyemak imbas Apabila diklik Dimatikan apabila butang belakang ditekan. Tetapi perlu diingat bahawa ia boleh menyebabkan halaman dimuatkan dengan lebih perlahan, jadi keperluannya harus dipertimbangkan dengan teliti sebelum menggunakannya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetuskan Peristiwa `onload` dengan Amanah Selepas Klik Butang Belakang 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