Выбранный виджет jQuery не работает в представлении совместимости IE8

Я использую виджет Chosen jQuery из http://harvesthq.github.com/chosen/. Он хорошо работает в моем приложении в большинстве браузеров, но не будет работать в IE8 в режиме «Просмотр в режиме совместимости». Это представляет для меня проблему, поскольку в интрасети моей компании представление в режиме совместимости используется по умолчанию для сайтов интрасети. Вы можете проверить мою проблему, перейдя по ссылке выше и переключившись на представление совместимости в IE.

Причина, по которой я не полностью отказался от этого, заключается в том, что на этой странице http://davidwalsh.name/dw-content/jquery-chosen.php кто-то заставляет его работать в представлении совместимости в IE (убедитесь сами).

Я использую jQuery 1.6.2 и Chosen 0.9.5. Windows XP и IE 8.0.6001 в режиме совместимости. Он отлично работает, если я переключаю режим браузера на IE8 в инструментах разработки, но я не хочу, чтобы каждый пользователь делал это. Кто-нибудь использовал этот плагин раньше и заставил его работать в режиме совместимости в IE8?

<script type="text/javascript">    $("#groupsList").data("placeholder", "Select Groups").chosen();</script>

person Rondel    schedule 14.12.2011    source источник


Ответы (2)


Знаешь что-то, я столкнулся с точно такой же проблемой сегодня.

Версия, которую Дэвид Уолш использует для демонстрации, — 0.9.1. В 0.9.5 есть фрагмент кода, который полностью отключает его для MSIE 7 и ниже:

  if ($.browser.msie && ($.browser.version === "6.0" || $.browser.version === "7.0")) {
    return this;
  }

Я точно не знаю, что IE делает в режиме совместимости — по крайней мере, в IE9 с режимом совместимости выполнение $.browser.version возвращает «7.0». Это приведет к тому, что этот плагин просто выйдет.

Если вы действительно хотите, вы можете отключить эту проверку или применить изменение кода, которое кто-то предложил в этой проблеме github. В качестве альтернативы вы можете просто использовать версию 0.9.1 из демонстрации Дэвида.

person Jonathon Bolster    schedule 14.12.2011
comment
Затем человек, который написал плагин, уже нашел проблемы с IE7 (режим совместимости с IE8 опускается почти до режима IE7). Чтение списка проблем github, похоже, что некоторые вещи с z-index заставляют плагин работать неправильно. Проверьте это на github.com/harvesthq/chosen/issues/270. - person Alfabravo; 14.12.2011
comment
Yip - это ссылка, которую я указал. В моем случае (торопливом) я просто признал, что множественный выбор деградирует до чего-то пригодного для использования. Не пробовал ни один из вариантов в этом выпуске, но когда у меня будет время, я посмотрю (было бы неплохо получить его и в старых браузерах) - person Jonathon Bolster; 14.12.2011
comment
Да, но браузеры IE (и 6, и 7) ведут себя ужасно причудливо. Конечно, требуется дополнительное время, чтобы этот плагин заработал. Может быть, вы можете помочь людям создать более кросс-браузерный плагин! :) - person Alfabravo; 14.12.2011
comment
Это работает. Комментирование этой строки помогло. Вероятно, на самом деле он там по уважительной причине, но он отлично работает и без него. Проблема z-index не возникает в представлении совместимости, но я буду помнить об этом на случай, если она поднимет голову. Спасибо - person Rondel; 14.12.2011
comment
@Rondel, проблема в том, что в режиме совместимости отключенный атрибут не работает. Скорее всего, это связано с проблемами z-индекса, о которых говорит Альфабраво. - person Mike Perrenoud; 16.11.2012
comment
У меня та же проблема (сайты интрасети находятся в совместимом виде). В каком файле я могу найти эти 3 строки кода? - person Solaflex; 21.08.2013

Я чувствую вашу боль, работая на одну из тех компаний, у которых этот режим тоже включен по умолчанию. У меня такая же проблема. вместо разветвления selected.js вы можете установить

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

который скажет IE отображать страницу с помощью своего последнего средства визуализации, в нашем случае IE8.

Старый вопрос, но я надеюсь, что это поможет другим.

person kali    schedule 26.04.2013
comment
Кажется, это работает, только если это первая строка после ‹head›. (IE9) - person joshua; 01.06.2013