像网站加载一样

时间:2011-09-28 12:43:20

标签: jquery

如何在不重新加载窗口的情况下将页面加载为 rapidshare

例如:

https://rapidshare.com/#!home

如果您浏览页面,浏览器窗口没有重新加载,它只是更改URL的最后一个参数,如#!myrs_overview,#!buyrapids,#!help等

当我在firebug中看到它时,它给出了参数名称,即从上面(home,buyrapids) http://screensnapr.com/v/wPJtCY.png

由于

2 个答案:

答案 0 :(得分:5)

#!被称为hashbang,它是standard for allowing Google to crawl ajax pages。他们只是使用AJAX重新填充页面信息,然后更新哈希URL:

采用以下示例导航链接:

<a href="contact.php" title="Contact Us" id="contact-us">Contact</a>

如果我们不希望该网页重定向到contact.php但我们想要加载内容,我们可以这样做:

<a href="#!contact" class="nav-link" rel="contact.php" title="Contact Us" id="contact-us">Contact</a>

然后使用JQuery:

$('.nav-link').click(function(){
    var $this = $(this);
    $.ajax({
        url: $this.attr('rel'),
        success: function(data){
            $('body').fadeOut().html(data).fadeIn();
        }
    });
});  

如果有人使用网址中的hashbang进入您的网站,我们只需检测它并加载相应的网页;这样的事情会起作用:

$(function(){
    if(window.location.hash){
        if(window.location.hash.indexOf('#!') === 0){
            $.ajax({
                url: window.location.hash.replace('#!','') + '.php',
                success: function(data){
                    $('body').fadeOut().html(data).fadeIn();
                }
            });
        }
    }
});

答案 1 :(得分:0)

您正在寻找的术语是AJAX。 “最后一个参数”不是GET参数,而是一个锚,由JavaScript读取。

有关开始使用此技术的一些提示,请参阅ajaxprojects.com