2013-07-18 63 views
0

我有如default.php和IM loadiing另一頁letter.php成如default.php的爲什麼清爽加載的頁面中的jquery所得到裝載頁僅

使用jquery的負載方法如下

$('div.banner a').click(function(event) { 
    event.preventDefault(); 
      var page = $(this).attr('href'); 
      $('.banner').load(page +'.php'); 
      return false; 
     }); 

和它的加載很好,但問題是,當我加載頁面後按F5,是越來越顯示出與所加載內容

回答

0
 use the url hashing technique, as shown below 

    $(document).ready(function(){ 
    $(init);       

    function init() {  
     ajax_page_handler(); 
     page_load($(window.location).attr("hash"));    
    } 

    function page_load($href) 
    { 
     if($href != undefined && $href.substring(0, 1) == '#') 
     { 
      $('.banner').load($href.substring(1));    
     } 
    }   
    function ajax_page_handler() 
    { 
     $(window).bind('hashchange', function() 
     {      
      $href = $(window.location).attr("hash"); 
     page_load($href);   
     }); 
    } 
    }); 
0

你需要記住的應該加載哪些頁面時去刷新頁面 的如default.php文件。

您可以使用cookie或任何本地存儲。

使用一個jQuery插件的cookie:

$('div.banner a').click(function(event) { 
    event.preventDefault(); 
      var page = $(this).attr('href'); 
      $.cookie("pageToLoad",page); 
      $('.banner').load(page +'.php'); 
      return false; 
     }); 

當去刷新頁面:

$(document).ready(function(){ 
    if ($.cookie("pageToLoad").length){ 
    $('.banner').load($.cookie("pageToLoad") +'.php'); 
} 

});

+0

如果您將該鏈接發送給尚未獲得該cookie的用戶,則不起作用。 – Thew

+0

是的,當然,這是真的 – Curlas

0

這是因爲這就是AJAX的工作原理。它爲頁面本身加載它,但是一旦你刷新它,你使用ajax加載的每一頁都消失了。我寫了這個簡單的函數,它爲URL添加了一個hashtag。然後,當您使用hashtag刷新頁面時,它會啓動相同的AJAX事件。

function loadfile(link, target){ 
    window.location.hash = '!'+ link; 

    target.load(link); 
} 

並且你使用這樣的:

$(document).ready(function(){ 
    if(window.location.hash != ''){ 
     var hash = window.location.hash; 
     loadfile(hash.replace('#!', ''), $('.banner')); 
    } 

    $('div.banner a').click(function(event) { 
     event.preventDefault(); 

     loadfile($(this).attr('href'), $('.banner')); 
    }); 
}); 
<div class="banner"> 
    Dear potato, 
    Blablabla. Lorum ipsum dolor sit amet, <a href="letter.php">letter</a>. 

    Love, 
    Carrot. 
</div> 

或者,而不是使用#標籤,你也可以嘗試使用history.pushState(),但這是新的東西,而不是每個用戶都支持它尚未。