Używam routing w Angularjs
dla mojego SPA, ale muszę obsługiwać IE7 (i IE8 w trybie zgodności IE7). Chcę, aby historia przeglądarki nadal działała. Nie obchodzi mnie, czy muszę używać wtyczki jQuery.Obsługa historii Angularów dla IE6 i IE7
Odpowiedz
Sprawdziłem przez kątowego źródła sniffer.js, location.js i browser.js sprawdzić mechanikę jak historia działa. Zasadniczo, jeśli przeglądarka obsługuje historię (tj. $sniffer.history
jest prawdą), używana jest historia api, inaczej po prostu zapisuje się do location.href
(lub locaiton.replace(url)
). Aby uzyskać szczegółowe informacje, sprawdź numer $browser.url(url, replace)
w przeglądarce browser.js, wiersz 149.
Tak więc, jeśli kątowe jest tylko pisanie do location
następnie plugin jquery jak Ben Alman „s BBQ odbierze to wydarzenie, ponieważ jest odpytywanie do zmiany location.hash. I z powodzeniem dostał tę pracę w IE8 (w trybie IE7), po prostu w tym Bena hashchange plugin (podzbiór grill), a następnie minimalny ogień zdarzeń oraz zdarzeń słuchanie:
$(function() {
$(window).hashchange(function() {
// don't delete this empty handler or ie6/7 history won't work.
});
// call hashchange on first load
$(window).hashchange();
});
UWAGA: jQuery hashchange (i grill) jest używając przestarzałej $.browser.msie
przy linii 300, więc zamiast tego użyj (document.documentMode != undefined)
zgodnie z sugestiami w komentarzach do posta na blogu Bena.
- 1. CSS Lint ignoruje wszystkie błędy oparte na IE6 i IE7
- 2. jQuery na żywo, zmiana nie działa w IE6, IE7
- 3. Wykrywanie IE6 przy użyciu jQuery.support
- 4. Czy można używać ikonek GWT przy użyciu ImageBundle do pracy w IE7 i IE6?
- 5. Node.TEXT_NODE i IE7
- 6. Dodatkowa wyściółka IE6 na dole
- 7. Wybierz pole kurczy się w IE7, ale nie IE6 lub IE8
- 8. IE7 awaryjne do IE6 trybie standardowym podczas renderowania CSS z pamięci podręcznej
- 9. Nie można wykonać kodu ze zwolnionego skryptu - IE6 IE7 IE8 IE9
- 10. Kiedy program IE6 przestanie być obsługiwany?
- 11. Kontrolery wielu Angularów na jednej stronie
- 12. Dziwny problem z użyciem jquery w IE6
- 13. IE7 BUTTON biały kontur
- 14. Znane problemy z gzipem i IE6
- 15. Jak wykryć IE6 i pokazać alert?
- 16. Najlepszy scenariusz zastępczy polyfil dla IE7, IE8 i IE9
- 17. Czy Ember.js obsługuje IE6?
- 18. Problem z układem IE6 - pozycjonowanie bezwzględne
- 19. Przyciski radiowe i .attr ("sprawdzone", "sprawdzone") NIE działają w IE7
- 20. Problem pływaka IE7 po lewej i układania w stos
- 21. Obsługa TestFlight dla ios7 i starszych?
- 22. Obsługa Emoji dla iOS i Androida
- 23. Wielowątkowość JavaScript w IE6?
- 24. Problem z zawieszaniem IE6
- 25. IE6 min-height dylemat
- 26. AJAX readystatechange listener dla IE7 + 8
- 27. Czy istnieje narzędzie podobne do ISlow dla IE7?
- 28. Obsługa OnNewIntent dla FLAG_ACTIVITY_NEW_TASK
- 29. Obsługa przeglądarki dla stopImmediatePropagation?
- 30. Obsługa Babel dla Object.entries
Dzwonili lat 90. Chcą powrotu ich hrefa. –
@DanKanze - Niestety ... gdzie pracuję, istnieje wewnętrzny system tak zanurzony w IE7, że nie można go zaktualizować poza IE8 w trybie zgodności. –
Tak, mogą. Mogą używać IE 7/8 dla starszej aplikacji oraz Chrome lub Firefox dla wszystkich pozostałych. Chyba że pili Microsoft Kool-Aid. Starsze aplikacje, takie jak ten, są jedynym powodem korzystania z IE. Zawsze. – iconoclast