html和href只点击一次

时间:2012-12-21 21:48:39

标签: html href

我有一个链接

<a href="new link">click me</a>

当用户点击“点击我”链接时,新链接页面将被重定向并在服务器端执行某些操作。问题是,如果用户单击浏览器上的后退按钮,它将返回旧链接。如果用户单击“单击我”链接,将打开新的链接页面,服务器端的处理将再次执行。如何防止这种情况?即使用户返回旧页面,也无法再点击新链接

3 个答案:

答案 0 :(得分:2)

在链接上生成唯一ID,例如therequest.do?id=1234,并将1234记录到数据库,以便无法再次运行请求。

  • 用户转到mypage.do,服务器生成标识1234并以未处理的方式登录数据库。
  • 用户点击指向therequest.do?id=1234
  • 的链接
  • 服务器进行处理,并将ID 1234标记为已处理。
  • 用户点击后退按钮。
  • 用户再次点击链接。
  • 服务器检查并看到请求1234已被处理,因此在屏幕上生成错误消息:request has already been processed

答案 1 :(得分:0)

您可以尝试创建一个新窗口,但这会阻止最终用户返回,但是您需要创建访问状态以使该按钮在CSS中消失。

<a href="new link" target="_blank">click me</a>

除此之外,在纯HTML中,没有办法阻止用户点击标准链接上的后退按钮。

答案 2 :(得分:0)

您可以使用Javascript执行此操作。这是示例代码,显示了一种方法:

<html>
<body>
<a href="#" onclick="f();">click me</a>
<script>
    var first = true;
    function f() {
        if ( first ) {
            first = false;
            window.open('http://www.google.com');
        }
    }
</script>
</body>
</html>

或者,您可以删除全局状态变量,只需在单击链接后禁用或隐藏链接。