simplemodal с jQuery 1.10.2 не работает в IE из-за неправильного определения режима причуд

Я использую simplemodal 1.4.4 с jQuery 1.10.2 и получаю ошибки "Не реализовано" в IE8. Это происходит из-за того, что simplemodal неправильно обнаруживает, что IE находится в режиме quirks, и выполняет функцию 'fixIE', которая должна устранять проблемы в IE6 и IE7, но ошибки в IE8 (и, вероятно, IE9+ тоже).

simplemodal выполняет следующую проверку для ieQuirks:

browser.ieQuirks = browser.msie && !$.support.boxModel;

Проблема в том, что $.support.boxModel был удален из jQuery 1.10, поэтому !$.support.boxModel всегда возвращает истину.

Мне интересно, что лучший способ обнаружить причуд режим в IE, чтобы я мог заменить !$.support.boxModel?

2 ответа

Решение

Последняя версия Simple Modal [1.4.4] использует $.support.boxModel, [Строка 239], которая не поддерживается в Jquery 1.10.*

Чтобы решить эту проблему, замените следующую строку:

// Line 240: browser.ieQuirks = browser.msie && !$.support.boxModel;

с

browser.ieQuirks = browser.msie && (document.compatMode === "BackCompat");

Это то, что jquery забрал, вы можете вставить его обратно, если вы хотите

var div = document.createElement("div");
div.style.width = div.style.paddingLeft = "1px";

document.body.appendChild( div );
jQuery.support.boxModel = div.offsetWidth === 2;
Другие вопросы по тегам