我是用事件监听的方法,代码如下,见笑了。大家都来说说自己的方法哦:function addLoadListener(fn){
if (typeof window.addEventListener != 'undefined'){
window.addEventListener('click', fn, false);
}
else if (typeof document.addEventListener != 'undefined'){
document.addEventListener('click', fn, false);
}else if (typeof window.attachEvent != 'undefined'){
var all=document.all;
for(var i=0;i<all.length;i++){
all[i].attachEvent('onclick', fn);
}
}else{
var oldfn = window.onclick;
if (typeof window.onclick != 'function'){
window.onclick = fn;
}
else{
window.onclick = function(){
oldfn();
fn();
}
}
}
}
var tt="tt";
var domain=document.domain.toLowerCase();function func(event){

var target=event.target || event.srcElement;
var reg=new RegExp(domain);
if(target.tagName.toLowerCase()=="a"){
if(!reg.exec(target.href.toLowerCase()) || domain==''){
var flag=window.confirm("不是本站的链接,存在一定的风险,是否继续访问?");
            if(!flag){
//other browser
if(event.stopPropagation){
event.stopPropagation();  //停止冒泡       
event.preventDefault();   //阻止事件的默认行为
}else{//IE
window.event.cancelBubble = true;//停止冒泡
window.event.returnValue = false;//阻止事件的默认行为
}

}else{
//alert("OK1");
}
}
}
addLoadListener(func);

解决方案 »

  1.   

    http://topic.csdn.net/u/20111112/22/d2874a67-af49-4a15-8305-ebfd1eb190de.html
    第一点,可以用jQuery $("a")把所有连接都加上自己想加的东西
      

  2.   

    function addLoadListener(elem, type, fn){
    if(arguments.length < 3){
    return;
    }
    if(!(elem instanceof HTMLElement || elem === document)){
    return;
    }
    if(typeof fn !== "function"){
    return;
    }
    if(elem.addEventListener){
    elem.addEventListener(type, fn, false);
    }else if(elem.attachEvent){
    elem.attachEvent('on' + type, fn);
    }else{
    if(!elem.eventHandles){
    elem.eventHandles = {};
    }
    if(!elem.eventHandles[type]){
    elem.eventHandles[type] = [];
    }
    elem["on"+type] = function(){
    var handles = elem.eventHandles[type];
    for(var i in handles){
    handles[i]();
    }
    }
    }
    }

    function func(event){
    var target = event.target || event.srcElement;
        if(target.tagName.toLowerCase() == "a"){
         var domain = document.domain,
         reg=new RegExp(domain, "i");
            if(!reg.test(target.href) || domain==''){
                var flag=window.confirm("不是本站的链接,存在一定的风险,是否继续访问?");
                if(!flag){
                    //other browser
                    if(event.stopPropagation){
                        event.stopPropagation();  //停止冒泡       
                        event.preventDefault();      //阻止事件的默认行为
                    }else{//IE
                        window.event.cancelBubble = true;//停止冒泡
                        window.event.returnValue = false;//阻止事件的默认行为
                    }
                }                 
            }else{
                //alert("OK1");
            }
        }
    }
    addLoadListener(document, "click", func);
      

  3.   

    function addLoadListener(elem, type, fn){
    if(arguments.length < 3){
    return;
    }
    if(!(elem instanceof HTMLElement || elem === document)){
    return;
    }
    if(typeof fn !== "function"){
    return;
    }
    if(elem.addEventListener){
    elem.addEventListener(type, fn, false);
    }else if(elem.attachEvent){
    elem.attachEvent('on' + type, fn);
    }else{
    if(!elem.eventHandles){
    elem.eventHandles = {};
    }
    if(!elem.eventHandles[type]){
    elem.eventHandles[type] = [];
    }
    elem.eventHandles[type].push(fn);
    elem["on"+type] = function(event){
    var handles = this.eventHandles[type];
    for(var i in handles){
    handles[i](event);
    }
    }
    }
    }

    function func(event){
    var target = event.target || event.srcElement;
        if(target.tagName.toLowerCase() == "a"){
         var domain = document.domain,
         reg=new RegExp(domain, "i");
            if(!reg.test(target.href) || domain==''){
                var flag=window.confirm("不是本站的链接,存在一定的风险,是否继续访问?");
                if(!flag){
                    //other browser
                    if(event.stopPropagation){
                        event.stopPropagation();  //停止冒泡       
                        event.preventDefault();      //阻止事件的默认行为
                    }else{//IE
                        window.event.cancelBubble = true;//停止冒泡
                        window.event.returnValue = false;//阻止事件的默认行为
                    }
                }                 
            }else{
                //alert("OK1");
            }
        }
    }
    addLoadListener(document, "click", func);
      

  4.   

    function wrapEvent(event){
    var e = event ? event : window.event;
    if(document.all){
    e.target = e.srcElement;
    e.stopPropagation = function(){
    window.event.cancelBubble = true;
    }
    e.preventDefault = function(){
    window.event.returnValue = false;
    }
    }
    return e;
    }
    function addLoadListener(elem, type, fn){
    if(arguments.length < 3){
    return;
    }
    if(!(elem.nodeType === 1 || elem === document)){
    return;
    }
    if(typeof fn !== "function"){
    return;
    }
    if(!elem.eventHandles){
    elem.eventHandles = {};
    }
    if(!elem.eventHandles[type]){
    elem.eventHandles[type] = [];
    }
    elem.eventHandles[type].push(fn);
    elem["on"+type] = function(event){
    var e = wrapEvent(event);
    var handles = this.eventHandles[type];
    for(var i in handles){
    handles[i](e);
    }
    }
    }

    function func(event){
    var target = event.target;
        if(target.tagName.toLowerCase() == "a"){
         var domain = document.domain,
         reg=new RegExp(domain, "i");
            if(!reg.test(target.href) || domain==''){
                var flag=window.confirm("不是本站的链接,存在一定的风险,是否继续访问?");
                if(!flag){
                        event.stopPropagation();  //停止冒泡       
                        event.preventDefault();      //阻止事件的默认行为
                }                 
            }else{
                //alert("OK1");
            }
        }
    }
    addLoadListener(document, "click", func);
      

  5.   

    大巧不工。链接就是链接。使用有固定规则,可以避免混乱。
    要实现其它方式,可以选择合适的其它标签,如DIV,INPUT等。