在页面重新加载后加载动态生成的内容

时间:2011-06-08 16:22:37

标签: javascript jquery html

我有一个用jQuery编写的Google Instant样式搜索脚本。当用户搜索时,会创建一个类似#search / QUERY / 1 /的URL。但是,当您重新加载页面时,单击转到其他页面的结果或从上一页返回的搜索结果不再存在。为什么会这样?

我的jQuery代码是:

$(document).ready(function(){
    $("#search").keyup(function(){
        var search=$(this).val();
        var query=encodeURIComponent(search);
        var yt_url='search.php?q='+query+'&category=web';
        window.location.hash='search/'+query+'/1/';
        document.title=$(this).val()+" - My Search Script";
        if(search==''){
            window.location.hash='';
            document.title='My Search Script';
        }
        $.ajax({
            type:"GET",
            url:yt_url,
            dataType:"html",
            success:function(response){
                if(response !=""){
                $("#result").html(response);
                } else {
                $("#result").html("No results were found.");
                }
            }
        });
    });
});

2 个答案:

答案 0 :(得分:1)

$(document).ready(function(){
    /// Your original key up here...

    // With browser's back you should get your hash back, so you should be
    // able to fill in the query value back and simulate key release to trigger search
    if(window.location.hash.indexOf('#search/') == 0) {
        query = window.location.hash.replace('#search/', '').replace('/1/', '');
        $('#search').val(decodeURIComponent(query)).keyup();
    }

});

答案 1 :(得分:0)

因为它在搜索之前返回到页面的先前状态。

也许这可能是一种解决方法:

$(document).ready(function(){
   /* 
     your code here
   */ 
   if ($("#search").val() != "")
     $("#search").keyup();
});

因此它会模仿用户在页面重新加载,返回等时的搜索行为。