单击链接时提示用户进行确认

时间:2011-06-29 09:19:08

标签: javascript html confirmation

我有一个链接可以执行一些有潜在危险的功能(删除一些东西)。我想提示用户是否真的想要这样做。我想用javascript做它,它应该非常简单。

到目前为止我的解决方案:

<a href='/delete' onclick='return confirm("Are you sure?")'>delete</a>

..在Firefox和IE中间点击不会触发的方式很糟糕。

<a href='/delete' onmousedown='return confirm("Are you sure?")'>delete</a>

..不起作用。即使单击确定返回true,也不会导航链接。

实现此目的的正确方法是什么?

2 个答案:

答案 0 :(得分:14)

<a href='#' onclick='confirmUser()'>delete</a>

<强>的javascript

 function confirmUser(){
    var ask=confirm("Are you sure");
    if(ask){
      window.location="/delete";
     }
}

答案 1 :(得分:5)

我刚刚为网上银行客户端解决了这个问题。每当用户导航到第三方站点时,FDIC都需要确认“speedbump”。我们想要不引人注目地做到这一点,并让它无法绕开。

我已经使用IE,Firefox,Chrome和Android对其进行了测试 - 单击,右键单击,中键单击,切换单击,切换F10,输入,长按,一切(Firefox很难)。要么得到速度突击,要么你得到一个空白的标签,你无法解决它。

document.ready = function() {

    var handleSpeedBump = function(e) {
        e.preventDefault();

        var href = this.getAttribute("data-href");
        var sure = confirm("Are you sure you want to navigate to " + href + "?  This is a third party site and not owned by this institution.");
        if (!sure) return;
        document.location = href;
    }

    $("a.speedbump")
        .click(handleSpeedBump)
        .bind("contextmenu", handleSpeedBump)
        .dblclick(handleSpeedBump)
        .each(function() {
            var href = this.href;
            this.setAttribute("data-href", href);
            this.href = "javascript:void('Navigate to " + href.replace("'", "") + "')";
        })
}

为了完成这项工作,只需按正常情况编写链接,并在其类中添加“speedbump”。

<A href="www.thirdpartysite.com" class="speedbump">Here is the link!</A>