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;