You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elementor中window.location.replace失效,无法禁用浏览器返回按钮

家暴救助网站紧急退出按钮解决方案

问题原因

你当前的代码同时调用了window.open(打开新标签)和window.location.replace(替换当前页面),浏览器会优先处理新标签打开操作,导致当前页面的replace未按预期覆盖历史记录;另外,即使replace生效,用户若切换回原标签仍能操作返回按钮。需要调整逻辑来实现“禁用返回”的效果(注:无法完全禁用浏览器返回键,但可以通过修改历史栈让返回按钮失效)。

解决方案

方案1:仅替换当前页面(推荐)

去掉window.open,直接用window.location.replace替换当前页面,这样原家暴网站的页面会从浏览器历史栈中被覆盖,用户点击返回会回到进入家暴网站之前的页面,而非家暴网站内部页面。

代码示例:

jQuery("#Exit").on("click", function(){
   window.location.replace("https://www.google.com"); 
});

注意:Elementor中jQuery可能处于noConflict模式,所以用jQuery而非$,避免报错。

方案2:保留新标签+强化历史栈处理

如果必须打开新标签,同时通过修改历史栈和监听返回事件,防止用户回到家暴网站页面:

jQuery("#Exit").on("click", function(){
   // 打开目标新标签
   window.open("https://www.google.com/search?q=cute+cat", "_blank");
   // 替换当前页面历史记录
   window.location.replace("https://www.google.com");
   // 覆盖当前历史栈条目,防止返回
   history.replaceState(null, null, window.location.href);
   // 监听浏览器返回事件,触发时再次跳转
   window.addEventListener('popstate', function() {
       history.replaceState(null, null, window.location.href);
       window.location.replace("https://www.google.com");
   });
});

额外建议

  • 紧急退出按钮建议添加键盘快捷键(如ESC键),提升隐蔽性和易用性:
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape') {
            window.location.replace("https://www.google.com");
        }
    });
    
  • 确保按钮样式隐蔽(比如透明或和页面背景融合),避免被施暴者发现。

内容的提问来源于stack exchange,提问作者tryinHada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:24:17