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

时间:2011-06-18 22:53:00

标签: javascript jquery html

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

我的jQuery代码是:

$(document).ready(function(){
    $("#search").keyup(function(e){
        if(e.keyCode==13){
            var search=$(this).val();
            var query=encodeURIComponent(search);
            var yt_url='search.php?q='+query;
            window.location.hash='search/'+query+'/';
            document.title=$(this).val()+" - My Search Script";
            $.ajax({
                type:"GET",
                url:yt_url,
                dataType:"html",
                success:function(response){
                    $("#result").html(response);
                }
            });
        }
    });
});

2 个答案:

答案 0 :(得分:0)

这是因为您正在使用AJAX调用动态加载搜索结果。如果重新加载页面,那么该信息就会丢失。

可能的解决方案是将搜索查询和/或结果存储在用户会话中。然后,您将能够在页面重新加载时自动添加内容。

答案 1 :(得分:0)

当用户重新加载javascript时,所有变量和函数都会重新初始化。 JavaScript不会在页面之间传递变量。您需要服务器端解决方案,或使用JavaScript存储。后者可能无法在所有浏览器中使用。