代码如下:
//监听所有ajax请求完成事件
$(document).ajaxComplete(function (event, xhr, options) {
try {
if (xhr.status == 403) {
debugger
//子页面发的消息
window.parent.postMessage('403', '*');
}
} catch (e) {
console.log(e);
}
});
// 注册消息事件监听,接受父元素给的数据
window.addEventListener('message', (e) => {
debugger
console.log('iframe=' + e.data);
AuthCheck(e.data);
}, false);
//权限校验逻辑
function AuthCheck(type) {
debugger
if (type != 403) {
return;
}
layer.alert('登陆状态发生变化,将在5秒后退出登陆!',
{
icon: 2,
time: 5 * 1000,
success: function (layero, index) {
var timeNum = this.time / 1000,
setText = function (start) {
layer.title((start ? timeNum : --timeNum) + ' 秒后退出登陆', index);
};
setText(!0);
this.timer = setInterval(setText, 1000);
if (timeNum <= 0) clearInterval(this.timer);
},
end: function () {
clearInterval(this.timer);
//退出登陆
sessionStorage.clear();
document.location.href = "../../";
}
});
}