JavaScript黑暗技巧揭秘,巧妙禁止浏览器“后退”按钮点击功能

JavaScript黑暗技巧揭秘,巧妙禁止浏览器“后退”按钮点击功能"/

在JavaScript中,如果你想阻止用户通过点击浏览器的“后退”按钮来导航到历史记录中的上一个页面,你可以通过监听`popstate`事件来实现。当用户尝试点击“后退”按钮时,会触发这个事件。
以下是一个简单的示例代码,它会在用户尝试点击“后退”按钮时弹出一个警告框:
```javascript window.addEventListener('popstate', function(event) { event.preventDefault(); // 阻止默认行为 alert('不允许后退!'); }); ```
请注意,`event.preventDefault()` 方法在这里是用来阻止事件默认行为的,但在实际浏览器中,由于安全原因,大多数浏览器不允许脚本阻止 `popstate` 事件的默认行为。因此,上面的代码在大多数现代浏览器中可能不会按预期工作。
不过,你可以通过修改浏览器的历史记录来达到类似的效果。以下是一个使用 `history.pushState()` 和 `history.replaceState()` 方法来修改历史记录的示例,从而实现阻止用户点击“后退”按钮:
```javascript // 当用户尝试点击后退按钮时,我们替换当前历史记录条目 window.addEventListener('popstate', function(event) { history.replaceState(null, null, document.title); alert('不允许后退!'); }); ```
在这个示例中,我们监听 `popstate` 事件,并在事件触发时使用 `history.replaceState()` 方法替换当前的历史记录条目,同时弹出一个警告框。这样,当用户尝试点击“后退

相关内容:

浏览网页时,当从A页面点击跳转到B页面后,一般情况下,可以点击浏览器上的“后退”按钮返回A页面。

如果进入B页面后,B页面想让访问者留下,禁止返回,是否可以实现呢?

这简直是要控制浏览器的行为,虽然有些邪恶,但确实可以实现,使用特殊的JavaScript代码就可实现。

方法如下:

实现原理:

监听浏览器的popstate事件,该事件会在用户点击浏览器的回退按钮时被触发。

然后,使用History.pushState()方法向当前浏览器会话的历史堆栈中添加一个陷阱状态,该状态会使“回退”操作无效。

JS源码:

<script>

//浏览器返回键事件

pushHistory();

window.addEventListener("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) != -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文件:

这时,代码成为加密状态,虽然不影响运行,是万万不可能了。

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章