如何使用#创建动态页面?

时间:2011-10-15 15:45:58

标签: javascript jquery ajax html5

我注意到很多像Twitter和其他一些网站的网页都将AJAX融入他们的设计中。引起我注意的一件事是使用#!在URL中。我想知道如何为自己或他们使用的方法做到这一点,谢谢!

1 个答案:

答案 0 :(得分:4)

您可以从非常简单的事情开始,并使用HashchangeBBQ插件。阅读两者的手册,你将掌握这个想法。

以下是简短而简要的介绍:http://code.google.com/intl/en-EN/web/ajaxcrawling/docs/html-snapshot.html

<强>更新

好吧,我们以Hashchange插件为例。以下代码非常原始,但我认为这将有助于理解基本部分

HTML:

<ul>
    <li><a href="/about">About</a></li>
    <li><a href="/contact">Contact Us</a></li>
    <li><a href="/links">Links</a></li>
</ul>

<div id="page"></div>

JS:

$(function(){

    /*
     * We override the default
     * behaviour of our links
     * and change the hash of the URL,
     * e.g. '/contact' -> '#contact',
     * so the address bar of the browser
     * would change to 
     * 'http://example.com#contact'
     */
    $('ul').find('a').click(function() {
        var hash = $(this).attr('href').replace('#', '');
        window.location.hash = hash;

        return false;
    });

    /*
     * The main hashchange logic
     *
     * We use jQuery.load to retrieve
     * a specific part of the loaded document,
     * #page here
     */
    $(window).hashchange(function() {
        var newLoc = window.location.hash.replace('#', '');

        $('#page').load('/' + newLoc + ' #page');
    });

    $(window).hashchange();

});