我有一个用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.");
}
}
});
});
});
答案 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();
});
因此它会模仿用户在页面重新加载,返回等时的搜索行为。