对整站的a链接进行监控,对匹配规则进行指定页面的跳转

项目中有个需求,就是将非本站的链接跳转到过渡页(提示即将离开本站的那种页面)。这个时候想起了腾讯邮箱,不安全链接会有新的页面提示,如下图:

本以为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

原文地址:https://www.cnblogs.com/lollipop/p/3876070.html