Rumah > Artikel > hujung hadapan web > Perbezaan antara js dalam IE dan firefox_Pengetahuan asas
1.firefox tidak boleh menyokong innerText.
Firefox menyokong innerHTML tetapi bukan innerText Ia menyokong textContent untuk melaksanakan innerText, tetapi ruang tambahan juga dikekalkan secara lalai. Jika textContent tidak digunakan, innerHTML boleh digunakan sebaliknya jika rentetan tidak mengandungi kod HTML.
2. Larang pemilihan kandungan web:
Biasanya gunakan js dalam IE: obj.onselectstart=function(){return false;}
Firefox menggunakan CSS:-moz-user-select:none
3. Sokongan penapis (contoh: penapis lutsinar):
IE:filter:alpha(opacity=10);
firefox:-moz-opacity:.10;
4. Tangkapan acara:
IE: obj.setCapture(), obj.releaseCapture()
Firefox: document.addEventListener("mousemove",mousemovefunction,true);
document.removeEventListener("mousemove",mousemovefunction,true);
5. Dapatkan kedudukan tetikus:
IE: event.clientX, event.clientY
firefox: fungsi acara diperlukan untuk menghantar objek acara
obj.onmousemove=function(ev){
X=ev.pageX;Y=ev.pageY;
}
6. Isu sempadan DIV dan elemen lain:
Contohnya: tetapkan CSS div::{width:100px;height:100px;border:#000000 1px solid;}
Dalam IE: lebar div (termasuk lebar sempadan): 100px, ketinggian div (termasuk lebar sempadan): 100px
Dan firefox: lebar div (termasuk lebar sempadan): 102px, ketinggian div (termasuk lebar sempadan): 102px
Jadi apabila membuat tetingkap seret ini yang serasi dengan IE dan Firefox, anda perlu menggunakan otak anda semasa menulis js dan css Berikut adalah dua petua untuk anda
1. Tentukan jenis penyemak imbas:
var isIE=document.all? true:false;
Saya menulis pembolehubah, jika sintaks document.all disokong maka isIE=true, jika tidak isIE=false
2. Pemprosesan CSS di bawah pelayar yang berbeza:
Secara amnya, anda boleh menggunakan !important untuk mengutamakan penggunaan pernyataan css (hanya disokong oleh firefox)
Contohnya: {border-width:0px!important;border-width:1px;}
Di bawah Firefox, elemen ini tidak mempunyai sempadan Di bawah IE, lebar sempadan ialah 1px
1.document.formName.item("itemName") masalah
Perihalan masalah: Di bawah IE, anda boleh menggunakan document.formName.item("itemName") atau document.formName.elements ["elementName"] di bawah Firefox, anda hanya boleh menggunakan document.formName.elements["elementName"]; .
Penyelesaian: Gunakan document.formName.elements["elementName"] secara seragam.
2. Masalah objek koleksi
Perihalan masalah: Di bawah IE, anda boleh menggunakan () atau [] untuk mendapatkan objek koleksi di bawah Firefox, anda hanya boleh menggunakan [ ] untuk mendapatkan objek koleksi.
Penyelesaian: Gunakan [] secara seragam untuk mendapatkan objek kelas koleksi.
3. Isu atribut tersuai
Perihalan masalah: Di bawah IE, anda boleh menggunakan kaedah mendapatkan atribut biasa untuk mendapatkan atribut tersuai, atau anda boleh menggunakan getAttribute() untuk mendapatkan atribut tersuai di bawah Firefox, anda hanya boleh menggunakan getAttribute() untuk mendapatkan atribut tersuai.
Penyelesaian: Dapatkan atribut tersuai secara seragam melalui getAttribute().
masalah 4.eval("idName")
Perihalan masalah: Di bawah IE, anda boleh menggunakan eval("idName") atau getElementById("idName") untuk mendapatkan objek HTML dengan id idName di bawah Firefox, anda hanya boleh menggunakan getElementById("idName") untuk mendapatkan Objek HTML dengan id idName .
Penyelesaian: Gunakan getElementById("idName") secara seragam untuk mendapatkan objek HTML yang idnya ialah idName.
5. Masalah bahawa nama pembolehubah adalah sama dengan ID objek HTML
Penerangan masalah: Di bawah IE, ID objek HTML boleh digunakan secara langsung sebagai nama pembolehubah objek bawahan dokumen, tetapi tidak di bawah Firefox di bawah Firefox, nama pembolehubah yang sama seperti ID objek HTML boleh digunakan, tetapi tidak di bawah IE.
Penyelesaian: Gunakan document.getElementById("idName") dan bukannya document.idName. Sebaik-baiknya jangan gunakan nama pembolehubah dengan ID objek HTML yang sama untuk mengurangkan ralat semasa mengisytiharkan pembolehubah, sentiasa tambahkan kata kunci var untuk mengelakkan kekaburan.
6.masalah berterusan
Perihalan masalah: Di bawah Firefox, anda boleh menggunakan kata kunci const atau kata kunci var untuk menentukan pemalar di bawah IE, anda hanya boleh menggunakan kata kunci var untuk menentukan pemalar.
Penyelesaian: Gunakan kata kunci var secara seragam untuk menentukan pemalar.
masalah atribut 7.input.type
Perihalan masalah: Atribut input.type di bawah IE ialah baca-sahaja tetapi atribut input.type di bawah Firefox ialah baca-tulis.
Penyelesaian: Jangan ubah suai atribut input.type. Jika anda mesti mengubah suainya, anda boleh menyembunyikan input asal dahulu, dan kemudian memasukkan elemen input baharu pada kedudukan yang sama.
8.tingkap.masalah acara
Perihalan masalah: window.event hanya boleh dijalankan di bawah IE, tetapi bukan di bawah Firefox Ini kerana acara Firefox hanya boleh digunakan di tempat kejadian berlaku.
Penyelesaian: Tambahkan parameter acara pada fungsi tempat peristiwa berlaku dan gunakan var myEvent = evt?evt:(window.event?window.event:null)
dalam badan fungsi (dengan andaian parameter formal ialah evt)
Contoh: