event.returnValue在IE6中不起作用

时间:2011-09-26 20:03:46

标签: javascript javascript-events

以下代码不应该在IE和Firefox中打开一个新窗口,它不能在Firefox中打开,而是在IE中打开,哪有错误。?

    var EventLib = {
        "preventDefault"  : function(event){
            if(event.preventDefault) {
                event.preventDefault();
            }else{
                window.event.returnValue = false;
            }           
        }
    }




    window.onload = function(){
      var elem = document.getElementById("link");
        elem.onclick = function(e){
        EventLib.preventDefault(e);
        }
    }

,HTML是

<a id="link" href="http://www.google.com" target="_blank">Click</a>

2 个答案:

答案 0 :(得分:1)

event.preventDefault未定义时,评估表达式event会引发错误。尝试使用if (event && event.preventDefault)而不仅仅是if (event.preventDefault)

答案 1 :(得分:-1)

只需更改下面显示的功能,它就可以正常工作

var EventLib = {
        "preventDefault"  : function(event){
            if(!event)
                event = window.event;
            if(event.preventDefault) {
                event.preventDefault();
            }else{
                window.event.returnValue = false;
            }           
        }
    }