Ie's Undefined 'console: A Solution
Menghadapi ralat "console is undefined" semasa menyahpepijat halaman web anda dalam Internet Explorer boleh mengecewakan . Berikut ialah panduan komprehensif untuk menyelesaikan isu ini dan mencegah ralat skrip dengan berkesan.
Latar Belakang Masalah
Firebug ialah alat yang sangat baik untuk memantau kod anda, tetapi pernyataan tertentu seperti "konsol .log(...)" boleh mencetuskan ralat masa jalan dalam IE8 dan versi yang lebih lama. Ini kerana IE tidak mempunyai objek konsol asli, yang membawa kepada isu "console is undefined".
Percubaan Awal
Percubaan untuk menampal isu ini dengan mentakrifkan konsol olok-olok objek dengan fungsi "log" pemegang tempat seperti ini:
<script type="text/javascript"> if (!console) console = {log: function() {}}; </script>
mungkin tidak mencukupi. IE nampaknya mentafsir kod sedemikian dengan betul tetapi masih membuang ralat "konsol tidak ditentukan".
Penyelesaian Terbukti
Untuk menghapuskan ralat ini dengan berkesan, cuba pendekatan yang diubah suai ini:
<script type="text/javascript"> if (!window.console) console = {log: function() {}}; </script>
Kaedah yang disemak ini terbukti lebih dipercayai kerana ia menyemak atribut 'window.console' dan bukannya mengakses terus 'console.' Pembolehubah yang tidak ditentukan tidak boleh dirujuk secara langsung, tetapi mengakses atribut yang tidak ditentukan bagi konteks global (tetingkap dalam penyemak imbas) boleh diterima.
Pilihan Alternatif
Jika anda lebih suka elakkan pembolehubah 'tetingkap', anda boleh menggunakan alternatif ini:
<script type="text/javascript"> if (typeof console === 'undefined') console = {log: function() {}}; </script>
Pilihan ini mencapai hasil yang sama dengan berkesan.
Atas ialah kandungan terperinci Mengapa Internet Explorer Melemparkan Ralat 'console is undefined' dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!