如果进入B页面后,B页面想让访问者留下,禁止返回,是否可以实现呢?
这切实其实是要掌握浏览器的行为,虽然有些邪恶,但确实可以实现,利用分外的JavaScript代码就可实现。
方法如下:
实现事理:
监听浏览器的popstate事宜,该事宜会在用户点击浏览器的回退按钮时被触发。
然后,利用History.pushState()方法向当前浏览器会话的历史堆栈中添加一个陷阱状态,该状态会使“回退”操作无效。
JS源码:<script>
//浏览器返回键事宜
pushHistory();
window.addEventListener(34;popstate", function(e) {
//判断移动端
var userAgentInfo = navigator.userAgent;
var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");
var equipmentType = false;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) != -1) {
equipmentType = true;
break;
}
}
if (equipmentType) {
$("#mask-back").show();
$("#mask-back .back-close").on("click", function() {
$("#mask-back").hide();
})
}
pushHistory(); //注,此处调用,可以让用户一贯勾留着这个页面
}, false);
function pushHistory() {
var stateeee = {
title: "title",
url: "#"
};
window.history.pushState(stateeee, "title", "#");
}
</script>
测试方法:建立两个文件:a.html、b.html。
a文件内容大略写一句代码:
<a href="b.html">goto b.html</a>。
b文件内容写入上面的源码。
打开a页面,点击链接进入b页面,这时再点击浏览器上的“退却撤退”按钮,会创造:操作无效,无法退却撤退。
提升强度:这个阴郁的技巧,虽然利用了不常见的技能方法,但查看页面源码很随意马虎创造实在现事理。
为了保护代码、防止代码被剖析,可以对上面的JavaScript代码加密,加密利用JShaman。
进入JShaman官网,贴入代码:
在配置中,勾选“字符串加密”:
然后天生稠浊加密的JavaScript代码:
复制粘贴回b文件:
这时,代码成为加密状态,虽然不影响运行,是切切不可能了。