js跳转新页面并执行新页面的某个函数
2022-09-07 本文已影响0人
禾苗种树
-
跳转时给url传个特定参数
在新页面通过判断url有无该参数来确定是否是来自该页面的该行为 -
不刷新页面: history.pushState():
在 HTML 文档中,history.pushState() 方法向当前浏览器会话的历史堆栈中添加一个状态(state)。
history.pushState('', '', newUrl); // 不刷新页面
- 案例
需求描述:在a页面提交成功后跳转到b页面,并显示b页面提交成功的弹窗
//
//a页面
$.ajax({
url: /xx/,
type: 'post',
dataType: 'json',
data: token(data),
cache: false,
timeout: 20000,
error: function () { alert('提交失败!'); },
success: function (data) {
if (data.code ==200) {
$('.common_tjerr').hide();
window.location.href=`/goxxx/?id=${goxxid}&ssuccess`;
}else{
$('.common_tjerr').show();
}
}
});
//b页面
function isCheckSubmit(){
var url = window.location.href;//获取当前浏览器的url
index = url.indexOf("ssuccess");//判断当前url是否有ssuccess,如果有,说明是从A页面跳转而来的,就执行下面的程序
if(index !==-1){
openSubmitSuccess();
}
}
function openSubmitSuccess(){//显示弹框
$('.submitSuccess').css({'display':'block'});
}
function closeSubmitSuccess(){//点击行为关闭弹框
let id = $('#goeeesid').val();
$('.submitSuccess').css({'display':'none'});
// 修改url避免刷新后一直跳出弹框
let url =`/goxx/?id=${id}`;
history.pushState('', '', url); // 不刷新页面
}