前几天遇到一个问题,有个页面需要做一个功能,功能并不复杂,需要浏览器点击返回的时候返回上层链接的首页。
这牵扯2个问题,1,有没有上一层目录。2,上一层是否是https。
其实很简单,下面是代码:
<!DOCTYPE html>
<html lang="zh"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>锁定浏览器返回上一层首页</title>
</head>
<body>
<p>锁定浏览器返回上一层首页</p>
<script>
$(function(){
//清空浏览器历史记录
pushHistory();
//监听浏览器后退事件
window.addEventListener("popstate",
function(e) {
//转向指定的URL
//获取上一层链接
var refurl = document.referrer;
//截取主域名
var refurlhost = refurl.split("/")[2];
//判定有没有上层目录,以及判定上层目录是不是https
if(refurl==""||refurl==null||refurl==undefined){
var refurlhostbalck ="/";
}else if(refurl.indexOf("https")>=0)
{
var refurlhostbalck ="https://"+refurlhost;
}else{
var refurlhostbalck ="http://"+refurlhost;
}
location.href=refurlhostbalck;
}, false);
//清空浏览器历史记录
function pushHistory() {
var url = "#";
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}
});
</script>
</body>
</html>