2013-06-11 14 views
6

Non riesco a ottenere l'opzione html4Mode per funzionare per me.Forza html4 fallback in history.js

Sto utilizzando lo script ajaxify (https://github.com/browserstate/ajaxify) su un'app di due pagine molto semplice. Tutto funziona perfettamente con i browser compatibili con HTML5, ma se voglio forzare il fallback html4 a scopo di test non cambia nulla, sembra che la cronologia ignori le opzioni e continui a utilizzare gli URL push dello html5.

Per forzare il fallback ho appena cambiato il copione ajaxify aggiungendo (il DOM pronto):

History.options.html4Mode = true; 

(sto usando lo script HTML4 + 5 fascio v1.8b1 jquery)

C'è un modo per farlo funzionare?

+0

(grazie per l'editing oleq) – smarques

risposta

9

Per inizializzare correttamente le opzioni per history.js, è necessario impostare le opzioni prima che lo script sia incluso nella pagina. Questo potrebbe essere simile al seguente:

<script type="text/javascript" language="javascript"> 
    window.History = { options: { html4Mode: true} }; 
</script> 
<script src="/scripts/jquery.history.min.js" type="text/javascript"></script> 

Se si tratta di un requisito che la bandiera HTML4 essere impostato su DOM pronto, quindi è possibile utilizzare l'opzione delayInit nello stesso modo. Basta notare che è necessario chiamare History.init() manualmente quando si è pronti:

<script type="text/javascript" language="javascript"> 
    window.History = { options: { delayInit: true} }; 
</script> 
<script src="/scripts/jquery.history.min.js" type="text/javascript"></script> 
... 
<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
     var userInput = true; 
     //some code gathering user input or something 
     window.History.options.html4Mode = userInput; 
     window.History.init(); 
    ); 
</script> 

Fonti: https://github.com/browserstate/history.js/pull/195 https://github.com/browserstate/history.js/issues/303

Nota: ho usato con successo il metodo illustrato nel primo esempio. Il secondo non l'ho provato personalmente.

+1

Questo funziona e dovrebbe essere accettato come risposta. – daw