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

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

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

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

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

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


person Ric    schedule 12.02.2014    source источник
comment
просто укажите значение boxModel перед использованием плагина.   -  person Endless    schedule 12.02.2014
comment
Или вы можете просто заменить это обнаружение в коде плагина на работающее… stackoverflow.com/questions/627097/   -  person CBroe    schedule 12.02.2014


Ответы (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");
person Shaiekh    schedule 20.02.2014

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

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

document.body.appendChild( div );
jQuery.support.boxModel = div.offsetWidth === 2;
person Endless    schedule 12.02.2014