Ответ 1
Во-первых, поскольку @Archer указал в комментариях выше, этот плагин неправильно закодирован. Идиоматический плагин jQuery будет терпеть неудачу, когда его метод вызывается на объект jQuery без элементов.
Как видно из кода здесь, этот плагин либо запускает console.log()
, либо alert()
, если console
не существует, когда нет элемента:
if ($(this).length == 0) {
if (window.console && window.console.log) {
window.console.log('Element does not exist in DOM!');
} else {
alert('Element does not exist in DOM!');
}
return false;
}
Это довольно плохо. Плагин имеет debugMode
, который может быть отключен, но это не поможет, потому что этот флаг здесь не используется. Чтобы изменить источник, вы можете изменить первую строку выше:
if (opts.debugMode && $(this).length == 0) {
И затем обязательно установите debugMode:false
в свои настройки.
-
Но как это в конечном счете влияет на IE, это то, что у него нет объекта console
, определенного при закрытии инструментов dev (и никогда не в IE6/7), поэтому простым решением было бы убедиться, что объект определен с функцией NO-OP.
if (!window.console) {
window.console = {
log: function() {}
};
}
Теперь он найдет console
и вызовет пустую функцию в IE вместо запуска alert()
.
Существуют и другие методы для объекта console
, который также должен быть заполнен, но log()
является наиболее распространенным.
Если вы так склонны, возможно, неплохо было бы написать отчет об ошибке с разработчиком. Кажется, что проект не обновлялся за последние 2 года, поэтому я не знаю, поможет ли он, но это не помешает.