我有一个链接,可以做一些有潜在危险的功能(删除一些东西)。我想提示用户是否真的想要这样做。我想用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,也不会导航链接。
实现这个的正确方法是什么?
<a href='#' onclick='confirmUser()'>delete</a>
JavaScript的
function confirmUser(){
var ask=confirm("Are you sure");
if(ask){
window.location="/delete";
}
}
我刚刚为网上银行客户解决了这个问题。每当用户导航到第三方站点时,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>