jQuery插件HISTORY.js(https://github.com/browserstate/History.js/)提供了HTML5历史记录推送实现功能,如果浏览器不支持,则应能够实现HTML4主题标签功能。说明文件/自述文件详细说明了用法:

   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;
    }
如您所见,该文档从HTML5的角度解释了HISTORY.js插件的用法,而没有解释HTML4支持的用法。
但是,在文档的“下载和安装”部分下,其内容为:
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>
此处的说明可能表示HTML4主题标签支持是自动的,但使用情况页面上的说明建议必须手动实现。我相信实际上是这样。
我找不到有关实现HTML4主题标签功能的更多文档。请帮我解决这个问题。

最佳答案

好的,也许问题在于您没有以正确的方式使用History.js(这也是我遇到的问题)。基本上,要以正确的方式使用History.js,您必须执行以下操作:

// 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' ) );
};

在执行此操作之前,我没有听过statechange,我只是在链接单击处理程序中使用pushState()。

如果您这样做,则无需编写后备代码,它也将在html4浏览器中运行(并且html4浏览器中的书签将按预期运行)

关于jquery - 实现History.js HTML4后备广告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7186466/

10-13 01:42