[英]jQuery / Ajax: How to call function on targeted page after redirect
我是Ajax和程序设计的新手,希望有人可以帮助我。
我在登录页面上使用以下内容。 这用于注册新用户,如果注册成功,将自动将其转发到索引页面。
到目前为止,一切都按预期进行。 我如何在此之后调用目标索引页面上的jQuery函数? 我要执行的操作是向用户显示警报,告诉他们成功注册后他们已自动登录-因此, 如果有人从登录页面重定向到该索引页面,则该警报仅应显示在索引页面上 。
我可以扩展下面的链接以传递一个变量(例如“ &origin=login
”),然后使用PHP在索引页面上处理该变量,但这似乎是一个较大的解决方法,我想知道是否可以使用Ajax轻松实现。
我做了一些研究,发现了一些有关Ajax的参考资料,但没有明确的指导方针。
有人可以帮我弄这个吗 ?
我的Ajax(在jQuery中):
case 'registration successful':
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'loginUser',
email: email,
pass: pass
},
success: function(data){
// redirect to index page
window.location.href = baseURL + '/index.php?lang=' + selectedLang;
// after the redirect I would like to show an alert on the targeted index page
}
});
break;
预先感谢,迈克
如果我正确理解了您的问题,则可以按以下方式重定向后,利用localStorage
显示alert
:
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'loginUser',
email: email,
pass: pass
},
success: function(data){
//set a localStorage item
localStorage.setItem('showAlert','true');
// redirect to index page
window.location.href = baseURL + '/index.php?lang=' + selectedLang;
// after the redirect I would like to show an alert on the targeted index page
}
});
并在您的index
页面的script
标签或任何已加载的js
文件中编写以下代码:
$(document).ready(function(){
var showalert=localStorage.getItem('showAlert');
if(showalert==='true')
{
//show the alert
localStorage.setItem('showAlert','false'); //set its value back to false;
}
});
关于localStorage
的一些解释
- 它存储没有到期日期的数据。
- 本地存储更安全,可以在不影响网站性能的情况下在本地存储大量数据。
UPDATE
对于当前的需求, sessionStorage
可能非常适合,因为您只想在用户登录时存储数据,并在注销后才清除数据。 用法类似于localStorage
,可以使用sessionStorage.setItem
或sessionStorage.getItem
代替localStorage.getItem
或localStorage.setItem
那么这个sessionStorage
是什么
在支持的浏览器(当前为Firefox 3 +,Safari 4+和Internet Explorer 8+)中,sessionStorage对象作为窗口对象的属性存在。 您可以将数据放置到sessionStorage对象上,并且只要打开该窗口(或选项卡),该数据就会保留。 即使您离开存储数据的页面然后再浏览回来,保存到sessionStorage的数据仍然可用。 sessionStorage中存储的任何数据都与保存该信息的页面的协议,主机名和端口相关,只有共享相同协议,主机名和端口的页面才能稍后访问该数据。
您可以在此处阅读有关sessionStorage
更多信息
您可以在JS中读取查询字符串(不必使用PHP)。
我以前使用过此功能:
function GetQueryStringParams(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
在较旧的浏览器中,使用localStorage可能会导致问题。 如果您必须避免使用查询字符串,我建议您使用cookie。
you can use query string as well for this purpose
case 'registration successful':
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'loginUser',
email: email,
pass: pass
},
success: function(data){
// redirect to index page
window.location.href = baseURL + '/index.php?lang=' + selectedLang+'&msg=true';
// after the redirect I would like to show an alert on the targeted index page
}
});
break;
---------------------
On index page get value from url
$(document).ready(function(){
var msg=window.location.toString().Split('msg')[1];
if(msg)
{
alert("Welcome....");
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.