Internet Explorer รองรับ pushState และ replaceState หรือไม่


140

ไม่มีใครรู้ว่า Internet Explorer รองรับhistory.pushState()และhistory.replaceState()วิธีการจัดการประวัติเบราว์เซอร์หรือไม่? เมื่อพิจารณาถึงสิ่งเหล่านี้กำลังถูกนำมาใช้ใน Firefox 4 ฉันไม่ได้กลั้นลมหายใจ แต่ใครจะรู้ว่าพวกเขากำลังเข้ามาใน IE9 หรือไม่?


3
ตกต่ำแน่นอนถ้า IE9 ไม่เพิ่มนี้
Eric Wahlforss

18
สำหรับสิ่งที่คุ้มค่าHistory.jsให้ HTML5 API เดียวกันในขณะที่เบราว์เซอร์ใด ๆ ที่ไม่สนับสนุนเบราว์เซอร์ที่ไม่สนับสนุน (รวมถึงการสนับสนุนข้อมูลและชื่อเรื่อง การใช้นั่นหมายความว่าคุณไม่ต้องเปลี่ยนรหัสสำหรับการเปลี่ยนแปลง IE9
balupton

2
ในทางกลับกันบางคนโต้เถียงกับการล้มกลับไปที่แฮช danwebb.net/2011/5/28/it-is-about-the-hashbangs
David Johnstone

1
@CHiRiLo: คุณจำเป็นต้องมีการอ้างอิงถึงjQuery นี่คือไลบรารี javascript จาก Google ที่ใช้กันอย่างแพร่หลายและจะทำให้ชีวิตของคุณง่ายขึ้นเมื่อทำงานกับ javascript ในเว็บไซต์ของคุณ
กลัว

5
Google ไม่ใช่ผู้พัฒนาหลักสำหรับ jQuery (อาจมีส่วนร่วม); มันจะโฮสต์ไว้ใน CDN แม้ว่า
trojjer

คำตอบ:


196

น่าจะเป็นเว็บไซต์ที่ดีที่สุดสำหรับข้อมูลการทำงานร่วมกันเป็นเบราว์เซอร์CanIUse นี่คือส่วนที่เกี่ยวกับประวัติศาสตร์ประวัติศาสตร์

ข้อมูลอย่างย่อ - IE9: ไม่ , IE10: ใช่ (ตามตัวอย่างแพลตฟอร์ม 3)

ผู้สมัครรุ่นแรกของ IE9 (เปิดตัววันที่ 10 กุมภาพันธ์ 2011) ไม่สนับสนุน history.pushState หรือ history.replaceState โดยทั่วไปจะไม่มีการเพิ่มฟีเจอร์ใหม่หลังจากที่ผลิตภัณฑ์เข้าสู่ระยะ RC ดังนั้นจึงไม่น่าเป็นไปได้มากนักที่ IE9 สุดท้ายจะรองรับวิธีการเหล่านี้

Microsoft มีภาพรวมที่ดีสำหรับนักพัฒนาคุณสมบัติ IE9

อัปเดต: เปิดตัว Internet Explorer 9 (วันที่ 14 มีนาคม 2554) และไม่รองรับhistory.pushState()หรือhistory.replaceState()หรือ

อัปเดต 2: ภาพตัวอย่างแพลตฟอร์มปัจจุบันของIE10 ยังไม่รองรับ pushState / replaceStatereplaceState

อัปเดต 3: แพลตฟอร์มแสดงตัวอย่าง 3 ของ IE10 รองรับ API ประวัติ! รายละเอียด


ณ วันนี้ประวัติ IE10 มีข้อผิดพลาดทำให้ใช้งานไม่ได้เหตุการณ์ popstate ไม่เริ่มต้นขึ้น รายละเอียดที่นี่: stackoverflow.com/questions/14698299/…
citykid

17

IE9 ไม่รองรับ

อย่างไรก็ตามคุณสามารถใช้วิธีแก้ไขปัญหาโดยใช้ Polyfill เพื่อรับฟังก์ชั่น - History.js https://github.com/browserstate/history.js https://github.com/browserstate/history.js

Modernizr ทำผลงานได้ดีในรายการ HTML 5 Polyfills นี่https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

ข้อแม้คือมันจะเพิ่มสตริงการสืบค้นไปยัง URL ของคุณในเบราว์เซอร์ที่รองรับฟีเจอร์ HTML 4 เท่านั้น


จากความคิดเห็นในคำถามข้างต้น popstate ไม่เริ่มทำงานใน IE10
Mandeep Jain

History.js เป็นทางออกที่ดีถ้าคุณต้องรองรับ IE 9 หรือต่ำกว่า แต่มันเป็น 23KB ลดขนาดลง นั่นเป็นจำนวนมากที่สนับสนุนวิธีการบางอย่างเท่านั้น
Neil Monroe

0

Internet Explorer 10 แนะนำการสนับสนุนสำหรับอินเทอร์เฟซประวัติของข้อกำหนดร่าง HTML5 ซึ่งรวมถึงวิธีการที่ช่วยให้คุณจัดการสแต็กประวัติและ URL ของไซต์

ลิงค์เดิม: https://msdn.microsoft.com/en-us/library/ie/hh920758(v=vs.85).aspx


0

Btw คุณจะได้รับข้อผิดพลาดดังกล่าวด้วยเหตุผลของเส้นทางที่แน่นอนใน pushState () เมื่อฉันตั้งข้อผิดพลาดเส้นทางสัมพัทธ์ก็หายไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.