Pada artikel ini, saya akan menguraikan secara singkat beberapa aspek sintaksis JavaScript yang berbeda antara Internet Explorer dan Firefox.
1. Properti “mengambang” CSS
Sintaks dasar untuk mendapatkan properti CSS tertentu dari objek tertentu adalah properti object.style, dan properti yang diberi tanda hubung menggunakan notasi unta sebagai gantinya. Misalnya, untuk mendapatkan atribut warna latar belakang div dengan ID "header", kita perlu menggunakan sintaks berikut:
document.getElementById("header").style.borderBottom= "1px solid #ccc";
Tapi sejak itu "float" adalah kata khusus JavaScript, kita tidak dapat menggunakan object.style.float untuk mendapatkan atribut "float". Inilah cara kami menggunakannya di kedua browser:
Sintaks IE:
document.getElementById("header").style.styleFloat = "kiri"
;
document.getElementById("header").style.cssFloat = "left";
2. Gaya elemen yang dihitung
Dengan menggunakan properti object.style.property di atas, JavaScript dapat dengan mudah mendapatkan dan memodifikasi gaya CSS kumpulan objek. Namun keterbatasan sintaksis ini adalah ia hanya dapat memperoleh gaya sebaris dalam HTML, atau gaya yang disetel langsung menggunakan JavaScript. Objek gaya tidak dapat memperoleh kumpulan gaya menggunakan lembar gaya eksternal. Untuk mendapatkan "gaya terhitung" suatu objek, kita menggunakan kode berikut:
Sintaks IE:
var myObject = dokumen.getElementById("header");
var myStyle = myObject.currentStyle.backgroundColor
;
var myObject = dokumen.getElementById("header");
var myComputedStyle = dokumen.defaultView.getComputedStyle(objek saya, null);
var myStyle = myComputedStyle.backgroundColor;
3. Dapatkan atribut "kelas" dari elemen tersebut
Mirip dengan atribut "float", kedua browser menggunakan metode JavaScript yang berbeda untuk mendapatkan atribut ini.
Sintaks IE:
var myObject = dokumen.getElementById("header");
var myAttribute = myObject.getAttribute("className")
;
var myObject = dokumen.getElementById("header");
var myAttribute = myObject.getAttribute("class");
4. Dapatkan atribut "untuk" dari label label
Seperti 3, ada juga sintaks berbeda dalam menggunakan JavaScript untuk mendapatkan atribut "untuk" pada label.
Sintaks IE:
var myObject = dokumen.getElementById("myLabel");
var myAttribute = myObject.getAttribute("htmlFor")
;
var myObject = dokumen.getElementById("myLabel");
var myAttribute = myObject.getAttribute("for");
Sintaks yang sama digunakan untuk metode setAtrribute.
5. Dapatkan posisi kursor
Mendapatkan posisi kursor suatu elemen jarang terjadi, dan jika Anda perlu melakukannya, sintaksnya berbeda di IE dan Firefox. Kode contoh ini cukup mendasar dan biasanya digunakan sebagai bagian dari banyak pengendali kejadian yang kompleks dan hanya digunakan untuk menjelaskan perbedaannya. Perlu dicatat bahwa hasil di IE berbeda dengan di Firefox, jadi ada beberapa masalah dengan metode ini. Seringkali, perbedaan ini dapat dikompensasi dengan mendapatkan "posisi gulir" - tapi itu adalah topik untuk artikel lain.
Sintaks IE:
var myCursorPosition = [0, 0];
myCursorPosition[0] = acara.klienX;
myCursorPosition[1] = event.clientY
;
var myCursorPosition = [0, 0];
myCursorPosition[0] = acara.halamanX;
myCursorPosition[1] = acara.halamanY;