event.returnValue не работает в IE6 - PullRequest
2 голосов
/ 27 сентября 2011

Следующий код не должен открывать новое окно в 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 ]

1 голос
/ 27 сентября 2011

Возможно, что при вычислении выражения event.preventDefault выдается ошибка, когда event не определено. Попробуйте использовать if (event && event.preventDefault) вместо if (event.preventDefault).

0 голосов
/ 27 сентября 2011

Просто измените функцию, как я показал ниже, она будет работать

var EventLib = {
        "preventDefault"  : function(event){
            if(!event)
                event = window.event;
            if(event.preventDefault) {
                event.preventDefault();
            }else{
                window.event.returnValue = false;
            }           
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...