Implémentation de History.js HTML4 Fallback

Le plugin jQuery HISTORY.js ( https://github.com/browserstate/History.js/ ) fournit une fonctionnalité d’implémentation de l’historique de l’historique HTML5 et devrait pouvoir implémenter une fonctionnalité de hashtag HTML4 en cas de navigateur non pris en charge. Le fichier documentation / README détaille l’utilisation ainsi:

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; } 

Comme vous pouvez le constater, la documentation explique l’utilisation du plug-in HISTORY.js jusqu’au point HTML5 et n’explique pas l’utilisation du support HTML4.

Toutefois, dans la section “Téléchargement et installation” de la documentation, vous pouvez lire:

 5. Include History.js /script>  

Les instructions fournies ici peuvent indiquer que le support du hashtag HTML4 est automatique, mais les instructions de la page d’utilisation suggèrent qu’il doit être implémenté manuellement. ce que je crois est en fait le cas.

Je ne trouve pas de documentation supplémentaire sur la mise en œuvre de la fonctionnalité de hashtag HTML4. S’il vous plaît aidez-moi à comprendre cela.

Ok, le problème était peut-être que vous n’utilisiez pas History.js correctement (c’est le problème que j’avais aussi). Fondamentalement, pour utiliser History.js correctement, vous devez faire quelque chose comme:

 // 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, sortinggger statechange by changing state var handle_click_on_link_to_load_view = function( e ) { e.preventDefault(); History.pushState( { target :this }, null, $( this ).attr( 'href' ) ); }; 

Avant de faire cela, je n’écoutais pas statechange et j’utilisais simplement pushState () dans le gestionnaire de liens.

Si vous le faites comme ceci, il n’est pas nécessaire de coder une solution de secours, cela fonctionnera également dans les navigateurs HTML4 (et les signets des navigateurs HTML4 fonctionneront comme prévu).