Pertanyaan saya berbeda dari posting lain yang serupa dengan ini.

AutoCAD menawarkan pengembang sarana untuk menampilkan halaman URL di dalam aplikasi. Saya membuat situs intranet untuk perusahaan saya dengan harapan pengguna dapat menjelajahi melalui browser desktop atau aplikasi AutoCAD mereka.

Masalahnya adalah browser yang digunakan AutoCAD adalah Chrome versi 33 (saat ini di 84) - tidak ada cara untuk memperbarui atau mengubah browser juga.

Saya tidak punya cara untuk "memeriksa" atau men-debug situs di dalam AutoCAD - dan saya menemukan ada banyak perbedaan di v84 dan v33. Saya mencoba untuk mendiagnosis kesalahan sekarang tetapi sekali lagi, saya tidak memiliki cara untuk mengakses log konsol di dalam Browser AutoCAD.

Apakah ada cara bagi saya untuk "memperingatkan" kesalahan apa pun yang coba diberikan konsol kepada saya? (yaitu: halaman tidak dapat menemukan referensi skrip, ada '.' yang tidak terduga, dll ...)

CATATAN - situs saya berjalan dengan baik di browser Chrome terbaru (v84 di browser desktop), tetapi beberapa hal kecil tidak berfungsi dengan baik di v33 (di Browser AutoCAD).

0
Sanya 1 September 2020, 23:38

1 menjawab

Jawaban Terbaik

Jika Anda mengontrol situs web, Anda dapat melampirkan pendengar di jendela untuk mendengarkan pengecualian yang tidak tertangani. Tambahkan ini sebelum semua skrip lain untuk memastikan semuanya ditangkap.

window.on('error', (e) => {
  // if error is intresting, do work.
  alert(e.message);
});

Handler menerima objek ErrorEvent.

CATATAN - Ini tidak akan menangkap kesalahan yang dipicu dalam skrip di seluruh domain. Misalnya jika Anda memuat peta google, dan kesalahan dipicu dalam skrip itu, Anda biasanya akan mendapatkan 'Kesalahan skrip.' dan tidak ada informasi lainnya. Ini ada hubungannya dengan kebijakan lintas asal. Anda dapat membaca lebih lanjut di sini.

Jika Anda perlu secara khusus untuk menangkap data yang dikirim ke console.error Anda cukup mem-proxy fungsi tersebut. Ini mungkin tidak menangkap apa pun kecuali kode yang secara eksplisit memanggil console.error dan tidak disarankan.

const error = console.error;
console.error = (...args) => {
  // alert(...);
  error.apply(console, args);
}
2
Brenden 1 September 2020, 21:39