Rumah >hujung hadapan web >tutorial js >Adakah Peristiwa `onload` Menyala Apabila Butang Belakang Diklik?

Adakah Peristiwa `onload` Menyala Apabila Butang Belakang Diklik?

DDD
DDDasal
2024-12-10 01:09:13123semak imbas

Does the `onload` Event Fire When the Back Button is Clicked?

Adakah Peristiwa Onload Membakar pada Butang Belakang Penyemak Imbas Klik?

Apabila menyasarkan pelayar utama seperti Firefox, Opera, Safari dan IE, acara onload dalam JavaScript gagal dicetuskan apabila halaman dimuatkan melalui butang belakang. Ia hanya menyala semasa pemuatan halaman awal.

Mencapai Keserasian Merentas Pelayar

Untuk mengatasi sekatan ini dan mengendalikan acara butang belakang dalam semua penyemak imbas utama, penyelesaian kreatif mempunyai telah ditemui menggunakan jQuery. Dengan menambahkan pendengar acara onunload kosong pada badan, Safari, Opera dan Mozilla secara tidak sengaja mencetuskan muat semula halaman. Tindakan ini meniru fungsi onload yang diingini.

Berikut ialah contoh kod ringkas:

<body onunload="">
  <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>

Setelah mengklik pautan dan menekan butang belakang, anda akan melihat bahawa makluman JavaScript dicetuskan, menunjukkan halaman muat semula.

Pertimbangan

Perlu diingat bahawa penyelesaian ini berpotensi memperlahankan halaman anda untuk pengguna. Adalah disyorkan untuk menilai dengan teliti sama ada pendekatan ini benar-benar sejajar dengan keperluan aplikasi anda.

Atas ialah kandungan terperinci Adakah Peristiwa `onload` Menyala Apabila Butang Belakang Diklik?. 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