0

私はdefault.phpを持っていて、別のページletter.phpをdefault.phpにロードしています

次のようにjqueryのloadメソッドを使用して

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

読み込みは問題ありませんが、問題は、ページの読み込み後に f5 を押すと、読み込まれたコンテンツなしで default.php ファイルが表示されることです。

4

3 に答える 3

0

ページの更新時にどのページをロードする必要があるかを覚えておく必要があります。

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

});

于 2013-07-18T11:16:03.580 に答える
0

それがAJAXの仕組みだからです。ページ自体をロードしますが、一度リフレッシュすると、ajax を使用してロードしたすべてのページがなくなります。URL にハッシュタグを追加するこの単純な関数を作成しました。次に、ハッシュタグを使用してページを更新すると、同じ 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()を使用することもできますが、これは新しい機能であり、まだすべてのユーザーがサポートしているわけではありません。

于 2013-07-18T11:16:04.183 に答える
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);        
         });   
    }   
   });
于 2013-09-03T09:37:40.233 に答える