【问题标题】:Prevent back button in browser?防止浏览器中的后退按钮?
【发布时间】:2013-01-11 06:57:27
【问题描述】:

我做了 30 多分钟的研究,但我无法弄清楚问题所在。我想防止用户在浏览器中回击并再次查看该页面。我该如何预防?我进行了大量研究并查看了我的银行发出的标头,但仍然无法弄清楚问题所在。

我必须支持 firefox,但让它在其他浏览器上运行也很好。

我发布的标题是(我通过查看我的浏览器认为的响应来确认)

Expires: Thu, 01 Jan 1970 00:00:00 GMT
Pragma: No-cache
Cache-Control: no-cache

在html中我开始

<!DOCTYPE html>
<html>
<head>
    <title>The Title</title>
    <link href="/my.css" rel="stylesheet" type="text/css" />
    <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="EXPIRES" CONTENT="Thu, 01 Jan 1970 00:00:00 GMT">
    <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</head>

当我提交表单并回击时,我仍然可以看到该页面。我想让浏览器说文档过期/无效或重置所有 html,这样表单就没有用户数据了。我该怎么做?

【问题讨论】:

    标签: html forms http web browser


    【解决方案1】:

    看看History.js by Benjamin Lupton。您可以将事件处理程序注册到onstatechange 事件,然后阻止默认操作。我们使用 jQuery 适配器并处理我们自己的历史记录,因为 Ajax 请求使用这样的方法。

    History.Adapter.bind(window, 'statechange', function() {
        var HistoryState = History.getState();
        if (HistoryState) {
    
            var stateData = HistoryState.data;
    
            if (stateData) {
    
    
            }
        }
    });
    

    您应该能够使用e.preventdefault 并阻止用户返回。

    我们用History.pushState(state, null, '');在数据对象中为每个页面添加状态数据对象,但不确定是否需要任何数据来阻止它们返回。

    【讨论】:

    • 我知道我没有这么说,但是当 javascript 被禁用时,该解决方案必须有效。这就是我试图找出过期/无效文档根目录的原因。
    猜你喜欢
    • 2015-10-22
    • 2011-10-15
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 2015-07-19
    相关资源
    最近更新 更多