Artikel ini terutamanya memperkenalkan pengenalan pelayar Internet Explorer 11: Jangan panggil saya IE, rakan yang memerlukan boleh merujuknya.
Minggu lepas, Microsoft secara rasmi melancarkan versi pratonton pertama Internet Explorer 11 dengan Windows 8.1. Dengan itu, sudah tiba masanya untuk meletakkan pelbagai khabar angin mengenai versi bocor pelayar web kontroversial ini untuk berehat. Kami kini mengetahui beberapa butiran penting tentang Internet Explorer 11, termasuk sokongan untuk WebGL, prefetch, prerender, flexbox, pemerhati mutasi dan standard web lain, mungkin lebih menarik dalam IE11, ialah ia bukan IE.
Buat pertama kali dalam masa yang lama, Microsoft telah mengalih keluar beberapa ciri daripada pelayar Internet Explorer. Rentetan ejen pengguna juga telah berubah. Nampaknya Microsoft telah meninggalkan pendekatannya sendiri, supaya cawangan kod sedia ada yang mengesan IE akan kembali palsu dalam pelayar Internet Explorer 11, sama ada dalam javascript atau pada pelayan.
Perubahan ejen pengguna
Berbanding dengan versi sebelumnya, rentetan ejen pengguna Internet Explorer 11 adalah lebih pendek dan terdapat beberapa perubahan yang menarik:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Untuk rentetan ejen pengguna Internet Explorer 10 pada Windows 7
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Perbezaan yang paling jelas ialah, sepanjang masa The "MSIE " teg yang terdapat dalam rentetan ejen pengguna Internet Explorer telah dialih keluar. Turut ketara ialah penambahan "seperti Gecko" di hujung ejen pengguna. Ini menunjukkan bahawa Internet Explorer lebih suka dikenal pasti sebagai pelayar Gecko daripada Internet Explorer itu sendiri. Safari ialah penyemak imbas pertama yang menambah "seperti Gecko" supaya sesiapa sahaja boleh menghidu aksara "Gecko" dalam rentetan ejen pengguna dan membenarkan penyemak imbas berlalu.
Kini sebarang kod menghidu yang mencari "MSIE" tidak akan berfungsi di bawah rentetan ejen pengguna baharu. Anda masih boleh mencari aksara "Trident" untuk memastikan ia adalah IE (logo "Trident" telah diperkenalkan dengan Internet Explorer). Versi sebenar Internet Explorer dikenal pasti oleh "rv".
Selain itu, maklumat objek navigator juga telah ditukar, yang seterusnya menyembunyikan penyemak imbas yang digunakan.
navigator.appName ditetapkan kepada "Netscape"
navigator.product ditetapkan kepada "Gecko"
Ini mungkin kelihatan seperti percubaan licik untuk menipu pembangun, tetapi ini sebenarnya HTML5 ditentukan . Atribut navigator.product mestilah "Gecko", dan navigator.appName juga hendaklah "Netscape" atau lebih khusus. Tetapi Internet Explorer 11 gagal mengikuti nasihat aneh ini.
Sebagai kesan sampingan daripada perubahan dalam maklumat pelayar, pengesanan penyemak imbas berdasarkan logik Javascript yang digunakan mungkin tidak tersedia, menyebabkan Internet Explorer 11 diiktiraf sebagai pelayar berasaskan Gecko.
document.all dan rakannya
Sejak IE4, document.all adalah maha kuasa dalam pelayar IE. Sama seperti document.getElementById() yang dilaksanakan sebelum ini, document.all ialah kaedah IE untuk mendapatkan rujukan kepada elemen DOM. Walaupun dari IE5 hingga IE10, document.all mengekalkan sokongan untuk DOM. Walau bagaimanapun, dalam 11, warisan era ini telah ditetapkan untuk mengembalikan palsu, yang bermaksud bahawa sebarang penghakiman cawangan kod berdasarkan document.all akan gagal dalam IE11, walaupun kod itu benar-benar menggunakan document.all dan berfungsi seperti biasa.
Legasi lain ialah menambah attachEvent() fungsi acara, serupa dengan kaedah detachEvent(). Kaedah ini telah dialih keluar daripada IE11. Kaedah ini dialih keluar untuk mengelakkan beberapa pertimbangan logik, seperti:
function addEvent(element, type, handler) { if (element.attachEvent) { element.attachEvent("on" + type, handler); } else if (element.addEventListener) { element.addEventListener(type, handler, false); } }
Sudah tentu, kami mengesyorkan bahawa versi terbaik untuk anda uji ialah versi yang sentiasa stabil dan menepati piawaian. Pada tahap tertentu, mengalih keluar kaedah attachEvent tidak akan menyebabkan sebarang ketidakselesaan. Walau bagaimanapun, Internet dipenuhi dengan kod logik pengesanan ciri yang lemah. Pengalihan keluar kaedah attachEvent memastikan bahawa sebarang kod yang ditulis dengan cara di atas akan menggunakan versi standard dan bukannya kaedah khusus IE.
Beberapa ciri lain yang dialih keluar:
window.execScript() - versi IE bagi kaedah eval()
window.doScroll() - versi IE bagi tetingkap Kaedah tatal
script.onreadystatechange - Pantau perubahan status skrip yang dimuatkan dalam IE
script.readyState - Status pemuatan skrip dalam IE
document.selection - IE Teks yang sedang dipilih dalam
document.createStyleSheet - Buat dokumen helaian gaya dalam IE
style.styleSheet - Objek gaya yang merujuk helaian gaya dalam pelayar IE
Semua cara pelayar IE ini telah digantikan dengan ciri standard. Selepas mengalih keluar ciri dan kaedah ini, kod penyemak imbas silang berdasarkan pengesanan ciri fungsi standard masih boleh berjalan seperti biasa tanpa perubahan.
Kesimpulan
Dalam masa yang lama, IE11 mungkin pelayar IE terbaik. Microsoft akhirnya bersiap sedia untuk membuat asal kesilapan masa lalu dan mula memasukkan penyemak imbas berdasarkan piawaian hari ini. Mengalih keluar ciri lama dan mengubah suai rentetan ejen pengguna yang tidak dikenali oleh IE ialah pendekatan unik yang memastikan semua tapak akan terus berfungsi. Jika aplikasi web menggunakan pengesanan ciri dan bukannya menghidu penyemak imbas, kod tersebut harus dijalankan dalam IE11. Untuk aplikasi yang menggunakan sniffing ejen pengguna, pengguna masih boleh melihat tapak web berfungsi sepenuhnya kerana IE11 mempunyai sokongan standard yang sangat baik.
Masa depan tanpa kod cawangan IE akan datang tidak lama lagi, mari kita sama-sama nantikannya.
(Dikemas kini pada 2013-7-2), dokumen.semua yang disebut dalam semakan sebenarnya tidak dipadamkan, tetapi ditukar kepada palsu
Di atas adalah keseluruhan kandungan bab ini lebih banyak tutorial berkaitan, sila Lawati Tutorial Video JavaScript!