Bagaimanakah saya boleh menangkap semua ralat JavaScript secara global, termasuk panggilan fungsi tidak ditentukan yang dicetuskan oleh Flash, menggunakan mekanisme `window.onerror`?

Susan Sarandon
Lepaskan: 2024-10-27 06:30:29
asal
956 orang telah melayarinya

How can I globally catch all JavaScript errors, including undefined function calls triggered by Flash, using the `window.onerror` mechanism?

Mekanisme Ralat Global JavaScript

Masalah: Adakah terdapat cara global untuk memerangkap setiap ralat JavaScript, termasuk panggilan fungsi tidak ditentukan yang dicetuskan oleh Flash?

Penyelesaian Menggunakan window.onerror

JavaScript menawarkan pengendali acara global, window.onerror, yang menangkap ralat yang dilemparkan sama ada semasa masa jalan (pengecualian tidak ditangkap) atau kompilasi (ralat masa kompilasi).

<code class="javascript">window.onerror = function(msg, url, line, col, error) {
  // Process and display error information
}</code>
Salin selepas log masuk

Menetapkan pengendali peristiwa window.onerror seperti yang ditunjukkan di atas akan memintas dan memproses setiap ralat yang ditemui dalam kod JavaScript.

Jenis Ralat Dikendalikan oleh window.onerror

tetingkap. onerror mengendalikan kedua-dua pengecualian yang tidak ditangkap dan ralat masa kompilasi. Pengecualian yang tidak ditangkap termasuk ralat seperti:

  • lempar "beberapa mesej"
  • Memanggil fungsi yang tidak ditentukan seperti call_something_undefined()

Ralat masa kompilasi, sebaliknya tangan, sertakan ralat seperti:

  • Teg skrip tidak ditamatkan ({)
  • Ralat sintaks (untuk(;)< /script>)

Keserasian Pelayar

window.onerror disokong secara meluas dalam penyemak imbas moden, termasuk:

  • Chrome 13
  • Firefox 6.0
  • Internet Explorer 5.5
  • Opera 11.60
  • Safari 5.1

Penggunaan Terperinci

Dengan mengembalikan true dari window.onerror, anda boleh menyekat makluman penyemak imbas lalai yang biasanya muncul untuk ralat JavaScript.

Pelaporan Ralat AJAX: Menggunakan XMLHttpRequest, anda boleh hantar maklumat ralat terperinci melalui AJAX ke skrip sebelah pelayan untuk pengelogan atau pemprosesan selanjutnya.

Rujukan

    Rangkaian Pembangun Mozilla: window.onerror ([link](https:// developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror))
  • MSDN: Mengendalikan dan Mengelak Ralat Halaman Web Bahagian 2: Ralat Masa Jalan ([pautan](https:/ /docs.microsoft.com/en-us/previous-versions/aspnet/bb264952(v=vs.100)))
  • Kembali ke Asas – Peristiwa onerror JavaScript ([pautan](https://javascriptweblog .wordpress.com/2010/02/11/back-to-basics-javascript-onerror-event/))
  • DEV.OPERA: Pengendalian ralat yang lebih baik dengan window.onerror ([pautan](https:/ /dev.opera.com/articles/window-onerror/))
  • Peristiwa Window onError ([pautan](https://www.byterocket.org/blog/window-onerror-event))
  • Menggunakan acara onerror untuk menyekat ralat JavaScript ([pautan](https://remysharp.com/2010/10/08/using-the-onerror-event-to-suppress-javascript-errors/))
  • Limpahan Tindanan: window.onerror tidak menyala dalam Firefox ([pautan](https://stackoverflow.com/questions/10714399/window-onerror-not-firing-in-firefox))

Atas ialah kandungan terperinci Bagaimanakah saya boleh menangkap semua ralat JavaScript secara global, termasuk panggilan fungsi tidak ditentukan yang dicetuskan oleh Flash, menggunakan mekanisme `window.onerror`?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!