Javascript 重定向或刷新后如何调用函数?
我正在编写代码来指向搜索结果页面,并调用javascript函数来返回适当的结果。到目前为止,这会重定向页面,并调用displaySearchEntries(术语),但会立即消失。似乎重定向是在调用函数之后发生的,但我不知道为什么会发生重定向,也不知道如何防止重定向。有什么建议吗?您无法控制下一页。一旦发生重定向,该页面就完成了 如果你想在下一页发生什么事情,你需要找到一种方法将信息传递到该页。这通常是通过查询字符串、发布表单、cookies或本地存储来完成的。下一页将需要查找该数据并对其进行处理Javascript 重定向或刷新后如何调用函数?,javascript,jquery,html,Javascript,Jquery,Html,我正在编写代码来指向搜索结果页面,并调用javascript函数来返回适当的结果。到目前为止,这会重定向页面,并调用displaySearchEntries(术语),但会立即消失。似乎重定向是在调用函数之后发生的,但我不知道为什么会发生重定向,也不知道如何防止重定向。有什么建议吗?您无法控制下一页。一旦发生重定向,该页面就完成了 如果你想在下一页发生什么事情,你需要找到一种方法将信息传递到该页。这通常是通过查询字符串、发布表单、cookies或本地存储来完成的。下一页将需要查找该数据并对其进行处
使用查询字符串的基本想法: 第一页:
$('#submit').click(function(){
window.location.replace("searchscreen.html");
var term = $('#search').text();
displaySearchEntries(term);
});
和searchscreen.html上的代码
$('#submit').click(function(e){
e.preventDefault();
var term = $('#search').text();
window.location.replace("searchscreen.html?search=" + encodeUriComponent(term));
});
调用重定向页面上的函数。在search screen.html中使用document.ready当您使用window.location时,它将终止浏览器中运行的所有脚本。您可以使用jqueryajax调用并使用回调函数来完成其余的工作 如果您不想使用AJAX函数,那么唯一可能的方法就是使用一个参数来标识重定向
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);
}
});
检查重定向变量并调用$(document).ready()中的函数。加载searchscreen后,必须调用displaySearch函数。。你必须在加载搜索屏幕时调用此函数。我尝试将其放入$(document).ready()中,但这似乎没有什么区别。onLoad()应该不同吗?编辑:我试着将display()放在onLoad=中,但它没有改变任何东西..准备好还是加载都没有关系。。但是包含函数dipslayEntries的脚本必须出现在搜索屏幕页面中。。将术语作为查询字符串传递给searchscreen.htmlen新页面加载后如何调用函数?在新页面上必须有一个onload处理程序。没有办法从调用下一个的页面开始。我认为对于更新的,这是可行的。。但不是一般的位置。替换或导航。可以只使用javascript使用POST吗?请您解释一下替换在那里做什么?为什么需要替换这些字符?
window.location = "searchscreen.html?redirect=true";