2011-09-28 30 views

回答

5

#!發現被稱爲hashbang,並且它的standard for allowing Google to crawl ajax pages。他們簡單地使用AJAX來重新填充頁面信息,然後更新哈希網址:

看看下面的例子導航鏈接:

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

如果我們不想讓頁面重定向到contact.php但我們使用jQuery

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

然後:要加載的內容,我們可以做到這一點,而不是

$('.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(); 
       } 
      }); 
     } 
    } 
}); 
+0

感謝您的回覆,我根據您的建議嘗試過,但不能正常工作,您能告訴我我在這裏做錯了什麼嗎? http://paste2.org/p/1677031 – user969068

+0

是的,$(this)'超出了範圍。這太早:)查看更新的代碼。 – AlienWebguy

+0

再次感謝確定該功能的作品,但不是聯繫人的href標記,如果我goto url加載成功index.php#!contact,但如果我點擊href它只是從index.php更改url到index.php#!聯繫,但沒有在頁面上更改。 – user969068

0

您正在尋找的術語是AJAX。 「最後一個參數」不是一個GET參數,而是一個由JavaScript讀取的錨點。

上使用這種技術開始的一些技巧可以ajaxprojects.com

+0

這是大多數時間ajax,但不一定ajax。所有內容可能已加載到單個頁面上,並顯示不同的部分。術語是錨定/散列,它正在'location.hash'上設置,並從那裏重試。 – Shef