$('#submit').click(function(){
window.location.replace("searchscreen.html");
var term = $('#search').text();
displaySearchEntries(term);
});
我正在编写代码以指向搜索结果页面并调用javascript函数以返回相应的结果。截至目前,这会重定向页面,并调用displaySearchEntries(term),但会立即消失。似乎重定向发生在调用函数之后,但我不知道为什么会发生这种情况或如何防止它。有什么建议吗?
答案 0 :(得分:1)
您无法控制下一页。重定向发生后,该页面就完成了。
如果您想在下一页上发生某些事情,您需要找到一种方法将信息传递给该页面。通常使用查询字符串,发布表单,cookie或本地存储来完成。下一页需要查找该数据并进行处理。
使用查询字符串的基本构思:
第一页:
$('#submit').click(function(e){
e.preventDefault();
var term = $('#search').text();
window.location.replace("searchscreen.html?search=" + encodeUriComponent(term));
});
和searchscreen.html上的代码
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
$(function(){
//read querystring
var term = getParameterByName("search");
//run your search
if(term.length) {
displaySearchEntries(term);
}
});
答案 1 :(得分:0)
重定向页面上的呼叫功能。在搜索screen.html中使用document.ready
答案 2 :(得分:0)
当您使用window.location时,它会杀死浏览器中运行的所有脚本。您可以使用JQuery AJAX调用并使用回调函数来完成剩下的工作。
如果您不想使用AJAX功能,唯一可行的方法是使用参数来识别重定向。
window.location = "searchscreen.html?redirect=true";
检查重定向变量并在$(document).ready()中调用该函数。