我刚刚为网上银行客户解决了这个问题。每当用户导航到第三方站点时,FDIC 都需要确认“减速带”。我们想不引人注意地做到这一点,并使其无法四处走动。
我已经用 IE、Firefox、Chrome 和 Android 测试了这个——单击、右键单击、中键单击、shift click、shift F10、enter、长按,一切(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>