เมื่อสัปดาห์ที่แล้ว Microsoft เปิดตัวอย่างเป็นทางการครั้งแรกของ Internet Explorer 11 ด้วย Windows 8.1 ด้วยวิธีนี้ถึงเวลาที่จะได้พักกับข่าวลือทั้งหมดเกี่ยวกับเว็บเบราว์เซอร์ที่รั่วไหลออกมา ตอนนี้เรารู้รายละเอียดที่สำคัญบางอย่างเกี่ยวกับ Internet Explorer 11 รวมถึงการสนับสนุน WebGL, Prefetch (หมายเหตุของนักแปล: ก่อนหน้าเช่นการอัปโหลดไฟล์ ฯลฯ และฉันไม่รู้ว่าการแปลนั้นถูกต้อง), PRERENDER บางทีน่าสนใจกว่าใน IE11 คือไม่ว่าจะเป็นเช่นนั้น
Microsoft ได้ลบคุณสมบัติบางอย่างออกจากเบราว์เซอร์ Internet Explorer เป็นครั้งแรกในระยะเวลานาน สตริงผู้ใช้ตัวแทนก็มีการเปลี่ยนแปลงเช่นกัน ดูเหมือนว่า Microsoft ได้ละทิ้งวิธีการของตัวเองเพื่อให้สาขาการตรวจจับ IE ที่มีอยู่จะส่งคืน FALSE ในเบราว์เซอร์ Internet Explorer 11 ไม่ว่าจะเป็นใน JavaScript หรือบนเซิร์ฟเวอร์
การเปลี่ยนแปลงตัวแทนผู้ใช้
เมื่อเทียบกับรุ่นก่อนหน้าสตริงตัวแทนผู้ใช้ Internet Explorer 11 นั้นสั้นกว่าและมีการเปลี่ยนแปลงที่น่าสนใจ:
การคัดลอกรหัสมีดังนี้:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; RV 11.0) เช่น Gecko
สำหรับสตริงผู้ใช้กับ Internet Explorer 10 บน Windows 7
การคัดลอกรหัสมีดังนี้:
Mozilla/5.0 (เข้ากันได้; MSIE 10.0; Windows NT 6.1; wow64; Trident/6.0)
ความแตกต่างที่ชัดเจนที่สุดคือแท็ก "MSIE" ของสตริงผู้ใช้ตัวแทนในเบราว์เซอร์ Internet Explorer ได้ถูกลบออก สิ่งที่น่าสนใจก็คือการเพิ่ม "Like Gecko" ไปยังหางของตัวแทนผู้ใช้ นี่แสดงให้เห็นว่า Internet Explorer ค่อนข้างจะได้รับการยอมรับว่าเป็นเบราว์เซอร์ตุ๊กแกมากกว่าในฐานะนักสำรวจอินเทอร์เน็ต Safari เป็นเบราว์เซอร์แรกที่เพิ่ม "Like Gecko" เพื่อให้ทุกคนสามารถดมกลิ่นอักขระ "ตุ๊กแก" ในสตริงผู้ใช้ตัวแทนเพื่อให้เบราว์เซอร์ผ่านได้
ตอนนี้รหัสการดมกลิ่นใด ๆ ที่มองหา "msie" ไม่ทำงานภายใต้สตริงผู้ใช้ใหม่ คุณยังสามารถค้นหาตัวละคร "ตรีศูล" เพื่อพิจารณาว่าเป็นเบราว์เซอร์ IE (โลโก้ "ตรีศูล" ได้รับการแนะนำด้วย Internet Explorer) Internet Explorer เวอร์ชันจริงถูกระบุโดย "RV"
นอกจากนี้ข้อมูลของวัตถุ Navigator ก็เปลี่ยนไปเช่นกันซึ่งจะปกปิดเบราว์เซอร์ที่ใช้
Navigator.Appname ถูกตั้งค่าเป็น "NetScape"
Navigator.product ถูกตั้งค่าเป็น "Gecko"
สิ่งนี้อาจดูเหมือนเป็นความพยายามที่จะหลอกนักพัฒนาอย่างล้นหลาม แต่สิ่งเหล่านี้ตามที่ระบุไว้ HTML5 คุณสมบัติ Navigator.product จะต้องเป็น "Gecko" และ Navigator.Appname ควรเป็น "Netscape" หรือเฉพาะเจาะจงมากขึ้น แต่ Internet Explorer 11 ยังไม่ปฏิบัติตามคำแนะนำแปลก ๆ นี้
ผลข้างเคียงที่เกิดจากการเปลี่ยนแปลงในข้อมูล Navigator การตรวจจับเบราว์เซอร์ตามตรรกะ JavaScript ที่ใช้งานอาจไม่สามารถใช้ได้ทำให้ Internet Explorer 11 รับรู้ว่าเป็นเบราว์เซอร์ที่ใช้ตุ๊กแก
document.all และเพื่อนของเขา
ตั้งแต่ IE4, document.all ได้ทำทุกอย่างในเบราว์เซอร์ IE document.getElementById () ที่ใช้ก่อนหน้านี้คล้ายกับ document.All เป็นวิธีการที่ได้รับการอ้างอิงองค์ประกอบ DOM แม้ว่า document.all จะให้การสนับสนุน DOM จาก IE5 ถึง IE10 อย่างไรก็ตามใน 11 ผลิตภัณฑ์ที่เหลืออยู่จากยุคนี้ได้รับการตั้งค่าให้ส่งคืน FALSE ซึ่งหมายความว่าการตัดสินสาขาใด ๆ ตามเอกสารทั้งหมดจะล้มเหลวใน IE11 แม้ว่ารหัสจริงจะใช้เอกสารจริงทั้งหมดทำงานได้อย่างถูกต้อง
มรดกอีกอย่างหนึ่งคือสิ่งที่แนบมา () ที่เพิ่มฟังก์ชั่นเหตุการณ์คล้ายกับวิธี Detachevent () วิธีนี้ถูกลบออกจาก IE11 วิธีการเหล่านี้จะถูกลบออกเพื่อหลีกเลี่ยงการตัดสินเชิงตรรกะเช่น:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น addevent (องค์ประกอบ, ประเภท, ตัวจัดการ) {
if (element.attachevent) {
element.attachevent ("on" + type, handler);
} อื่นถ้า (element.addeventListener) {
Element.addeventListener (ประเภท, ตัวจัดการ, เท็จ);
-
-
แน่นอนเราขอแนะนำว่าเวอร์ชันที่คุณเคยทดสอบดีที่สุดในการทดสอบนั้นมีความเสถียรและตรงตามมาตรฐาน ในบางระดับการลบวิธีการแนบไม่ได้ทำให้เกิดความรู้สึกไม่สบายใด ๆ อย่างไรก็ตามอินเทอร์เน็ตเต็มไปด้วยรหัสการตรวจจับคุณสมบัติสำหรับอินเทอร์เน็ต การลบวิธีการแนบไฟล์ช่วยให้มั่นใจได้ว่ารหัสใด ๆ ที่เขียนในลักษณะข้างต้นจะใช้เวอร์ชันมาตรฐานแทนวิธีการเฉพาะ IE
คุณสมบัติอื่น ๆ ที่ถูกลบออก:
window.execscript () - เช่นรุ่น Eval () Method
window.doscroll () - เช่นวิธีการเลื่อนหน้าต่าง
script.onreadystatechange - การเปลี่ยนแปลงสถานะของสคริปต์การโหลดใน IE
script.readystate - สถานะของการโหลดสคริปต์ใน IE
Document.Selection-ข้อความที่เลือกในปัจจุบันใน IE
document.createstylesheet-สร้างเอกสารสไตล์ชีทใน IE
style.stylesheet-วัตถุสไตล์ในเบราว์เซอร์ที่อ้างอิงแผ่นสไตล์
วิธีเบราว์เซอร์ IE ทั้งหมดเหล่านี้จะถูกแทนที่ด้วยคุณสมบัติมาตรฐาน หลังจากลบคุณสมบัติและวิธีการเหล่านี้รหัสข้ามเบราว์เซอร์ที่ใช้การตรวจจับคุณสมบัติการทำงานมาตรฐานยังคงสามารถทำงานได้ตามปกติโดยไม่ต้องเปลี่ยน
สรุปแล้ว
IE11 น่าจะเป็นเบราว์เซอร์ที่ดีที่สุดคือเป็นเวลานาน ในที่สุด Microsoft ก็เตรียมที่จะกำจัดข้อผิดพลาดที่เกิดขึ้นในอดีตและพร้อมที่จะเริ่มต้นด้วยเบราว์เซอร์ตามมาตรฐานปัจจุบัน การลบคุณสมบัติเก่า ๆ และการปรับเปลี่ยนสตริงเอเจนต์ผู้ใช้ที่ไม่ได้รับการยอมรับว่าเป็นเบราว์เซอร์คือวิธีปฏิบัติที่ไม่เหมือนใครซึ่งทำให้มั่นใจได้ว่าเว็บไซต์ทั้งหมดยังคงทำงานต่อไป หากเว็บแอปพลิเคชันใช้การตรวจจับคุณสมบัติแทนการดมกลิ่นเบราว์เซอร์รหัสควรเรียกใช้ใน IE11 สำหรับแอปพลิเคชันที่ใช้การดมกลิ่นผู้ใช้-ตัวแทนผู้ใช้ยังสามารถดูเว็บไซต์ที่มีฟังก์ชั่นที่ดีเนื่องจาก IE11 มีการสนับสนุนที่ยอดเยี่ยมสำหรับมาตรฐาน
อนาคตที่ไม่มีรหัสสาขาคือมาขอให้รอคอยร่วมกัน
(อัปเดตเมื่อวันที่ 2 กรกฎาคม 2013) เอกสารทั้งหมดที่กล่าวถึงในการแก้ไขไม่ได้ถูกลบจริง แต่ถูกเปลี่ยนเป็น Falsesy
ฉันไม่ได้แปลบทความมาเป็นเวลานาน ครั้งนี้ฉันแปลบล็อกของ Nicholas C. Zakas ข้อความต้นฉบับอยู่ที่นี่: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/