Internet Explorer는 pushState 및 replaceState를 지원합니까?


140

Internet Explorer가 브라우저 기록 을 조작 하기위한 history.pushState()및 history.replaceState()방법을 지원하는지 아는 사람이 있습니까? 이것들이 Firefox 4에서 구현되고 있다는 것을 고려할 때, 나는 숨을 쉬지 않고 있지만 IE9에 오는지 아는 사람이 있습니까?


3
IE9가 이것을 추가하지 않으면 실제로 우울합니다.
— Eric Wahlforss

18
가치가있는 것을 위해 History.js 는 동일한 HTML5 API를 제공하는 한편,이를 지원하지 않는 브라우저 (예 : 데이터 및 제목 지원, replaceState 기능 포함)를 정상적으로 저하시킵니다. 이를 사용하면 IE9 변경을 위해 코드를 변경할 필요가 없습니다.
— balupton

2
다른 한편으로, 일부는 해시로 되돌아가는 것에 반대한다. danwebb.net/2011/5/28/it-is-about-the-hashbangs
— David Johnstone

1
@CHiRiLo : jQuery에 대한 참조를 포함해야합니다 . 이 라이브러리는 널리 사용되는 Google의 자바 스크립트 라이브러리이며 웹 사이트에서 자바 스크립트로 작업 할 때 훨씬 쉽게 사용할 수 있습니다.
— awe

5
Google은 jQuery의 주요 개발자가 아닙니다 (기여했을 수도 있음). 그래도 CDN에서 호스트합니다.
— trojjer

답변:


196

브라우저 호환성 정보에 대한 최상의 사이트는 아마도 CanIUse 입니다. history 섹션이 있습니다 .

요약 - IE9 : 아니 , IE10 : 예 (플랫폼 미리보기 (3) 등 없음)

IE9의 첫 번째 릴리스 후보 (2011 년 2 월 10 일 릴리스)는 history.pushState 또는 history.replaceState를 지원하지 않습니다. 일반적으로 제품이 RC 단계에 도달 한 후에는 새로운 기능이 추가되지 않으므로 최종 IE9가 이러한 방법을 지원할 가능성은 거의 없습니다.

Microsoft는 IE9의 기능 을 개발자 에게 잘 보여줍니다 .

업데이트 : Internet Explorer 9는 2011 년 3 월 14 일에 시작되었으며 확실히 또는을 지원하지 않습니다 .history.pushState()history.replaceState()

업데이트 2 : IE10 의 현재 플랫폼 미리보기는 여전히 pushState / replaceState를 지원하지 않습니다 .

업데이트 3 : IE10의 Platform Preview 3 는 기록 API를 지원합니다! 세부


현재 IE10 기록에는 버그 가있어 쓸모가 없으며 popstate 이벤트는 발생하지 않습니다. 자세한 내용은 여기 : stackoverflow.com/questions/14698299/…
— citykid

17

IE9는이를 지원하지 않습니다.

그러나 Polyfill을 사용하여 해결 방법을 사용하여 기능을 사용할 수 있습니다-History.js https://github.com/browserstate/history.js .

Modernizr은 HTML 5 Polyfill을 https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills 에서 잘 작성했습니다 .

주의 할 점은 HTML 4 기능 만 지원하는 브라우저에서 URL에 쿼리 문자열을 추가한다는 것입니다.


위의 질문에 대한 의견으로, popstate는 IE10에서 실행되지 않습니다
— Mandeep Jain

History.js는 IE 9 이하를 지원해야하는 경우 좋은 솔루션이지만 23KB로 축소되었습니다. 몇 가지 방법 만 지원하면됩니다.
— Neil Monroe


0

그러나 pushState ()의 절대 경로로 인해 이러한 오류가 발생할 수 있습니다. 상대 경로를 설정하면 오류가 사라졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.