Akses Pembolehubah Global ID Elemen HTML
Timbul persoalan berkenaan pengendalian yang sesuai untuk mengakses ID elemen HTML melalui pembolehubah global. Dalam contoh yang diberikan, Chrome membenarkan akses terus kepada elemen dengan ID "a" melalui a.stuff(), manakala Firefox memerlukan penggunaan document.getElementById('a').
Spesifikasi
Spesifikasi HTML4 tidak menggariskan gelagat ini secara eksplisit. Walau bagaimanapun, ia tidak melarang amalan menjadikan ID elemen menjadi pembolehubah global sama ada. Spesifikasi HTML WHATWG pada masa ini mewajibkan gelagat ini, dengan mengambil kira akses global ID elemen sebagai warisan atau isu keserasian.
Pelaksanaan
Pelayar utama, termasuk Chrome dan Firefox (dalam mod quirks), telah menerima pakai tingkah laku ini atas sebab keserasian. Firefox, bagaimanapun, turut membenarkan akses terus kepada elemen melalui pembolehubah global dalam mod ketat, tetapi pelaksanaannya mungkin tidak boleh dipercayai.
Kekaburan
Apabila kedua-dua pembolehubah global a dan elemen HTML dengan ID "a" wujud, tingkah laku bergantung pada konteks pelaksanaan. Dalam kebanyakan kes, JavaScript akan mengutamakan pembolehubah global a berbanding elemen HTML. Walau bagaimanapun, penggunaan pembolehubah global untuk ID elemen biasanya tidak disukai kerana kemungkinan konflik dan pencemaran ruang nama.
Watak Khas dalam ID HTML
ID HTML boleh mengandungi tanda sempang (- ), titik bertindih (:), dan noktah (.), aksara yang tidak boleh digunakan dalam pengecam JavaScript. Untuk mengakses elemen ini melalui pembolehubah global, pelayar akan menterjemahkannya. Contohnya, elemen dengan ID "foo-bar" mungkin boleh diakses melalui foo-bar pembolehubah global.
Kesimpulan
Sementara amalan menjadikan ID elemen global pembolehubah mempunyai sokongan sejarah, ia tidak dinyatakan secara eksplisit dalam spesifikasi HTML4. Spesifikasi HTML WHATWG memerlukan tingkah laku ini, tetapi mengesyorkan menggunakan document.getElementById() atau kaedah lain untuk mengakses elemen. Menggunakan pembolehubah global untuk ID elemen harus dielakkan kerana kekeliruan dan kemungkinan konflik dengan pembolehubah lain dalam ruang nama global.
Atas ialah kandungan terperinci Mengapa Saya Kadangkala Boleh Mengakses ID Elemen HTML Secara Terus sebagai Pembolehubah Global dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!