项目中有个需求,就是将非本站的链接跳转到过渡页(提示即将离开本站的那种页面)。这个时候想起了腾讯邮箱,不安全链接会有新的页面提示,如下图:
本以为ASP.NET中有全局的方法获取到点击或者跳转的链接,结果也没找到。Request和Response都取不到的,HttpModule,HttpHandle,Global中也一样,毕竟跳转之后是到别人的网站上去了。不晓得IIS上能否监控的到。最后只能在a标签上加Onclick了。由于a标签的onclick要比href先执行,所以把a标签统一加上onclick事件,利用return false来控制href的执行。
var extLinkArr = ["aaa.net", "bbb.net", "ccc.gov.cn", "ddd.com", "qq.com"];//排除包含这些字符的链接
function _openExtLink(a) {
if (a.href.indexOf("javascript:") >= 0) {
return false;
}
var r = a.href;
for (var i = 0; i < extLinkArr.length; i++) {
if (r.indexOf(extLinkArr[i]) > -1) {
return true;//如果在指定的排除链接中,就执行href;
}
}
window.open("http://abc.com/Outside.html?url=" + encodeURIComponent(r), "_blank");//跳转到新页面做题时
return false;
}
$(function () {
$("a").click(function () {
return _openExtLink(this);
});
});
代码仅供参考,若您有更好的方法请在评论中分享。
参考http://www.cnblogs.com/goldarch/archive/2010/06/16/1759031.html