2011-08-25 12 views
6

Il plug-in jQuery HISTORY.js (https://github.com/browserstate/History.js/) fornisce una funzionalità di implementazione di push della cronologia HTML5 e, in caso di browser non supportato, dovrebbe essere in grado di implementare una funzionalità di hashtag HTML4. Dettagli Il file di documentazione/README l'utilizzo come così:Implementazione di History.js HTML4 Fallback

var History = window.History; // Note: We are using a capital H instead of a lower h 
    if (!History.enabled) { 
     // History.js is disabled for this browser. 
     // This is because we can optionally choose to support HTML4 browsers or not. 
     return false; 
    } 

Come si può vedere, la documentazione spiega l'utilizzo del plugin HISTORY.js fino al punto di HTML5 e non spiega l'utilizzo del supporto HTML4.

Tuttavia, sotto la sezione "Download & Installazione" della documentazione, si legge:

5. Include History.js 
<script src="http://www.yourwebsite.com/history.js/scripts/compressed/history.js">/script> 
<script src="http://www.yourwebsite.com/history.js/scripts/compressed/history.html4.js"></script> 

Le istruzioni qui possono trasmettere che il supporto HTML4 hashtag è automatico, ma le istruzioni riportate sulla pagina di utilizzo suggeriscono che deve essere implementato manualmente; che credo sia effettivamente il caso.

Non riesco a trovare ulteriore documentazione sull'implementazione dell'hashtag HTML4. Per favore aiutami a capirlo.

+0

Il modo in cui si dispone di questo scritto, probabilmente essere chiuso Spiega cosa hai provato e fornisci esempi espliciti di ciò che non funziona e dove hai bisogno di aiuto. Altrimenti, leggi la documentazione dello strumento e cerca un forum per discussioni più generali. [Vedi "Che tipo di domande non dovrei chiedere qui?"] (Http://stackoverflow.com/faq#dontask) – OverZealous

+0

Ok, scusa. Grazie per avermi detto cosa ho fatto di sbagliato. Ho solo pensato che se avessi scritto troppo, la gente non lo leggerà. Modificherò il post per spiegare ulteriormente. –

+0

Hai provato? Sembra che il plugin si degraderebbe automaticamente con grazia (funzionerebbe con HTML4 senza implementazione extra). – JJJ

risposta

1

Ok, forse il problema era che non stavi usando History.js nel modo giusto (questo è il problema che stavo facendo anch'io). Fondamentalmente per usare History.js in modo corretto è necessario fare qualcosa di simile:

// Register navigation click handlers where you will load Ajax content 
$(window).on('click', 'a.ai1ec-load-view', handle_click_on_link_to_load_view); 
// Bind to the statechange event 
$(window).bind('statechange', handle_state_change); 

// When the state changes, load the corresponding view 
var handle_state_change = function(e) { 
    var state = History.getState(); 
    load_view(state.url, 'json'); 
}; 

// When clicking on a link you want to load, trigger statechange by changing state 
var handle_click_on_link_to_load_view = function(e) { 
    e.preventDefault(); 
    History.pushState({ target :this }, null, $(this).attr('href')); 
}; 

Prima di fare questo io non ascoltavo statechange e mi è stato semplicemente utilizzando pushState() nel gestore di collegamento click.

Se lo fate come questo non v'è nessuna necessità di codificare un ripiego, funzionerà anche nei browser HTML4 (e segnalibri da browser HTML4 funzionerà come previsto)