Sto utilizzando il routing in Angularjs
per la mia SPA ma devo supportare IE7 (e IE8 in modalità di compatibilità IE7). Voglio che la cronologia del browser continui a funzionare comunque. Non mi interessa se devo usare un plugin jQuery.Supporto della cronologia di Angularjs per IE6 e IE7
risposta
Ho controllato attraverso la sorgente angolare sniffer.js, location.js e browser.js per controllare il meccanismo di come funziona storia. In sostanza se il browser supporta la cronologia (ad esempio, $sniffer.history
è true) viene utilizzata la cronologia, altrimenti scrive semplicemente su location.href
(o locaiton.replace(url)
). Controlla $browser.url(url, replace)
in browser.js, riga 149 per dettagli.
Quindi, se angolare è appena iscritto a location
poi un plugin jQuery come Ben Alman s' BBQ prenderanno questo evento, perché è il polling per le modifiche al location.hash. Ho avuto successo questo lavoro in IE8 (in modalità IE7) semplicemente includendo di Ben hashchange plugin (un sottoinsieme di barbecue) e poi un minimo di fuoco evento e l'evento di ascolto:
$(function() {
$(window).hashchange(function() {
// don't delete this empty handler or ie6/7 history won't work.
});
// call hashchange on first load
$(window).hashchange();
});
NOTA: jQuery hashchange (e barbecue) è utilizzando deprecato $.browser.msie
a riga 300, quindi utilizzare (document.documentMode != undefined)
come suggerito nei commenti al post del blog di Ben.
- 1. JSON on IE6 (IE7)
- 2. Sviluppato contro IE6, IE7, IE8 e presto IE9
- 3. IE6 e IE7 Standalone: cosa restituiscono in modo diverso?
- 4. Aggiungi supporto CSS3 a IE7 + con Javascript
- 5. Supporto Bootstrap su Twitter per IE7
- 6. Gli sprite di immagini GWT possono essere utilizzati con ImageBundle in IE7 e IE6?
- 7. jQuery dal vivo, cambiamento non funziona in IE6, IE7
- 8. jQuery slider e IE6 Issues
- 9. Rilevamento di IE6 tramite jQuery.support
- 10. Cronologia della cronologia Firefox Firebug
- 11. Quando IE6 non sarà più supportato?
- 12. CSS Lint ignora tutti gli errori basati su IE6 e IE7
- 13. AngularJS IE 8 Supporto
- 14. Supporto Aptana AngularJS
- 15. CSS sprites e IE6
- 16. Supporto TypeScript per EmberJS, AngularJS o BatmanJS
- 17. Come posso mostrare un messaggio ai browser IE6/IE7 per l'aggiornamento a IE8 e fare in modo che IE8 non mostri l'avviso IE7? .
- 18. IE6: Come ottenere immagini base64 inline per lavorare con IE6?
- 19. event.preventDefault() con Angularjs e UIRouter rimuove la cronologia del browser
- 20. IE6 background-position (?) Emissione
- 21. Seleziona la casella si restringe in IE7 ma non IE6 o IE8
- 22. Recupero della cronologia della riga di comando
- 23. Node.TEXT_NODE e IE7
- 24. IE7 float left e stacking problem
- 25. Il miglior sceneggiatura segnaposto polyfil per IE7, IE8 e IE9
- 26. Impossibile eseguire il codice da uno script liberato - IE6 IE7 IE8 IE9
- 27. API di cronologia Android 4.0 e HTML5
- 28. IE6/7/8 Memoria insufficiente?
- 29. Problema di layout IE6 - posizionamento assoluto
- 30. Controllo della cronologia goBack di uiwebview per iOS
Gli anni '90 hanno chiamato. Vogliono che il loro href sia tornato. –
@DanKanze - Purtroppo ... dove lavoro c'è un sistema interno così immerso con IE7 che non è possibile effettuare l'aggiornamento oltre a IE8 con la modalità compatibilità. –
Sì, possono. Possono utilizzare IE 7/8 per l'app precedente e Chrome o Firefox per tutto il resto. A meno che non stiano bevendo il Kool-Aid di Microsoft. Le app legacy come questa sono l'unica ragione per utilizzare IE. Mai. – iconoclast