Javascript, работающий в режиме компиляции IE8, но не в стандартном режиме - PullRequest
1 голос
/ 20 июля 2009

У меня есть JS-скрипт, который работает в режиме совместимости IE8, FF, Chrome, Opera, но не в режиме стандартов IE8.

Поскольку я думаю, что режим стандартов более строг, чем режим совместимости, возможно, что-то не так с моим кодом. Как я могу отладить? Есть ли что-то, что показывает мне вещи, которые будут работать в режиме совместимости, но стандартно?

Кроме того, в краткосрочной перспективе, как я могу изменить пользовательский браузер для использования режима совместимости в JS. Я не хочу менять весь сайт (т.е. менять шаблон документа), как мне это сделать в JS?

Спасибо.

Ответы [ 4 ]

1 голос
/ 20 июля 2009

Прежде всего, проверьте значение document.documentMode в JavaScript. Если ваша страница находится в режиме причуд, она возвращается к поведению IE 5, что может испортить ваш код.

Чтобы проверить режим документа, используйте этот маленький кусочек JavaScript.

var docMode = document.documentMode;
if (!docMode|| docMode < 8) {
    // Old IE or IE8 or later compatibility mode.
    // 5 for quirks mode, 7 for compatibility mode,
    // undefined for IE7 or earlier.
} else {
    // IE8 or later standards mode.
}

Трудно сказать, в чем проблема, если вы не публикуете код. Может быть, мы сможем понять это, если вы покажете нам, какой код ведет себя по-разному.

1 голос
/ 06 апреля 2012

Когда элементы управления определяются по «имени», а не по «id», совместимый режим работает и стандартный режим не работает, я решаю свою проблему, вставляя «id».

1 голос
/ 20 июля 2009

Для принудительного включения режима совместимости вам нужен собственный заголовок. Смотрите эту ссылку http://weblogs.asp.net/joelvarty/archive/2009/03/23/force-ie7-compatibility-mode-in-ie8-with-iis-settings.aspx

Если вы разместите Javascript, который не работает, возможно, мы сможем указать на проблему.

0 голосов
/ 16 августа 2013

Вероятно, у вас возникла проблема с jquery, связанная с css. Я заметил, что только в ie8 Standards Mode мои таблицы не менялись должным образом, и после отладки заметил, что в моем css для таблицы была повторяющаяся запись. Должно быть различие в способе, которым jquery..css ("border-left-width") отвечает в ie8, поскольку следующий css правильно отображает в режимах стандартов ie7 и ie9, но не в стандартном режиме ie8:

table {
 border: 8px solid #C2DDEE;
 border: none;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...