Pekan lalu, Microsoft secara resmi meluncurkan pratinjau pertama Internet Explorer 11 dengan Windows 8.1. Dengan cara ini, saatnya untuk beristirahat pada semua rumor tentang versi bocor kontroversial dari browser web ini. Kita sekarang tahu beberapa detail penting tentang Internet Explorer 11, termasuk dukungan untuk WebGL, prefetch (catatan penerjemah: preread, seperti mengunggah file, dll., Dan saya tidak tahu apakah terjemahannya benar), prerender (preprepresentation), flexbox, pengamat mutasi dan standar web lainnya. Mungkin lebih menarik di IE11 adalah apakah itu IE.
Microsoft telah menghapus beberapa fitur dari Browser Internet Explorer untuk pertama kalinya dalam waktu yang lama. String agen pengguna juga telah berubah. Tampaknya Microsoft telah meninggalkan caranya sendiri sehingga cabang kode pendeteksi IE yang ada akan mengembalikan false di browser Internet Explorer 11, baik dalam JavaScript atau di server.
Perubahan pada agen pengguna
Dibandingkan dengan versi sebelumnya, string agen pengguna Internet Explorer 11 lebih pendek, dan ada beberapa perubahan menarik:
Salinan kode adalah sebagai berikut:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; RV 11.0) Seperti Gecko
Untuk string agen pengguna untuk Internet Explorer 10 di Windows 7
Salinan kode adalah sebagai berikut:
Mozilla/5.0 (kompatibel; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Perbedaan yang paling jelas adalah bahwa tag "MSIE" dari string agen pengguna di browser Internet Explorer telah dihapus. Juga menarik adalah penambahan "seperti tokek" ke ekor agen pengguna. Ini menunjukkan bahwa Internet Explorer lebih suka diakui sebagai browser tokek daripada sebagai penjelajah internet itu sendiri. Safari adalah browser pertama yang menambahkan "seperti Gecko", sehingga siapa pun dapat mengendus karakter "tokek" di string agen pengguna untuk memungkinkan browser lewat.
Sekarang kode sniffing apa pun yang mencari "MSIE" tidak berfungsi di bawah string agen pengguna baru. Anda masih dapat mencari karakter "Trident" untuk menentukan bahwa itu adalah browser IE (logo "Trident" diperkenalkan dengan Internet Explorer). Versi nyata dari Internet Explorer diidentifikasi oleh "RV".
Selain itu, informasi dari objek Navigator juga telah berubah, yang selanjutnya menyembunyikan browser yang digunakan.
Navigator.Appname diatur ke "Netscape"
navigator.product diatur ke "tokek"
Ini mungkin tampak seperti upaya untuk secara diam -diam menipu pengembang, tetapi ini sebenarnya adalah HTML5 yang ditentukan. Properti navigator.produk harus "tokek", dan navigator.appname juga harus "netscape" atau lebih spesifik. Tapi Internet Explorer 11 kurang mengikuti saran aneh ini.
Efek samping yang disebabkan oleh perubahan informasi navigator, deteksi browser berdasarkan logika JavaScript yang digunakan mungkin tidak tersedia, menyebabkan Internet Explorer 11 dikenali sebagai browser berbasis tokek.
Dokumen. Semua dan teman -temannya
Sejak IE4, dokumen. Semua telah melakukan segalanya di browser IE. Document.getElementById () yang diimplementasikan sebelumnya mirip dengan Document.all adalah metode IE untuk mendapatkan referensi elemen DOM. Meskipun dokumen. Semua mempertahankan dukungan untuk DOM dari IE5 ke IE10. Namun, pada 11, produk yang tersisa dari era ini telah ditetapkan untuk mengembalikan False, yang berarti bahwa setiap penilaian cabang kode berdasarkan dokumen. Semua akan gagal di IE11, bahkan jika kode tersebut benar -benar menggunakan dokumen. Semua berfungsi dengan baik.
Warisan lain adalah attachEvent () yang menambahkan fungsi peristiwa, mirip dengan metode detachevent (). Metode ini telah dihapus dari IE11. Metode -metode ini dihapus untuk menghindari beberapa penilaian logis, seperti:
Salinan kode adalah sebagai berikut:
fungsi addevent (elemen, type, handler) {
if (element.attachevent) {
element.attachevent ("on" + type, handler);
} else if (element.addeventListener) {
element.addeventListener (tipe, pawang, false);
}
}
Tentu saja, kami merekomendasikan bahwa versi yang paling Anda gunakan untuk menguji selalu stabil dan memenuhi standar. Pada tingkat tertentu, menghapus metode attachEvent tidak menyebabkan ketidaknyamanan. Namun, Internet penuh dengan kode logika deteksi fitur untuk Internet. Penghapusan metode attachEvent memastikan bahwa kode apa pun yang ditulis dengan cara di atas akan menggunakan versi standar alih-alih metode spesifik IE.
Beberapa fitur yang dihapus lainnya:
window.execcript () - IE Metode eval () IE
window.doscroll () - IE Metode Gulir Jendela
Script.onReadyStateChange - Nyatakan perubahan skrip pemuatan di IE
Script.
Document.Selection-teks yang saat ini dipilih di IE
Document.createstylesheet-Ciptakan dokumen stylesheet di IE
style.stylesheet-objek gaya di browser IE yang merujuk pada lembar gaya
Semua metode browser IE ini digantikan oleh fitur standar. Setelah menghapus fitur dan metode ini, kode lintas-browser berdasarkan deteksi fitur fungsional standar masih dapat berfungsi secara normal tanpa berubah.
sebagai kesimpulan
IE11 mungkin adalah browser IE terbaik untuk waktu yang lama. Microsoft akhirnya bersiap untuk menghilangkan kesalahan yang dibuat di masa lalu dan siap untuk memulai dengan browser berdasarkan standar saat ini. Menghapus fitur lama dan memodifikasi string agen pengguna yang tidak dikenali karena IE browser adalah praktik unik, yang memastikan bahwa semua situs web terus berfungsi. Jika aplikasi web menggunakan deteksi fitur alih -alih sniffing browser, kode harus dijalankan di IE11. Untuk aplikasi yang menggunakan sniffing agen pengguna, pengguna masih dapat melihat situs web dengan fungsionalitas yang baik, karena IE11 memiliki dukungan yang sangat baik untuk standar.
Masa depan tanpa kode cabang IE akan datang, mari kita nantikan bersama.
(Diperbarui pada 2 Juli 2013), dokumen itu. Semua yang disebutkan dalam revisi sebenarnya tidak dihapus, tetapi diubah menjadi falsa
Saya sudah lama tidak menerjemahkan artikel tersebut. Kali ini saya menerjemahkan blog Nicholas C. Zakas. Teks asli ada di sini: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/