Почему моя страница работает в режиме IE7 IE9, а не в самом IE7? - PullRequest
24 голосов
/ 13 мая 2011

Я недавно начал работу с нашей новой домашней страницей, после тщательного тестирования ее в каждом из браузеров IE9 и режимов документов ( не только режим совместимости, но фактическая эмуляция IE7 и IE8). Сайт работает в каждом режиме, не говоря уже о современных браузерах. Однако после его запуска я получил электронное письмо, в котором говорилось, что в IE7 сайт сильно поврежден. Я пошел на заброшенную машину и загрузил Windows XP, запустил IE7 и загрузил страницу. К моему ужасу, макет действительно был сломан! (НЕ просто слайд-шоу!)

Самое главное, почему моя страница не работает в IE7, даже если она работает в режиме IE7 в IE9? И в качестве дополнительного вопроса, что может быть "не так" с это?

Редактировать : Я выяснил, что выяснил, что одной из моих проблем может быть слайд-шоу, но добавление .ie7 #slideshow {display:none !important} даже не скроет слайд-шоу. Я не могу получить к нему доступ через CSS.

Редактировать 2 : существует еще одна проблема, которая появляется только в родном IE7 - нижний колонтитул на этой домашней странице, а эта страница , является ультра крошечный текст, который нельзя увеличить. Это не происходит в IE9 в режиме IE7 (не совместимо) или в любом другом браузере. Еще один пример несоответствия.

Ответы [ 8 ]

25 голосов
/ 16 мая 2011

Я не знаю о режиме IE7-совместимости IE7, но режим совместимости IE7, встроенный в IE8, хорошо известен тем, что он не является идеальной копией настоящего IE7. Он имеет большое количество собственных ошибок и причуд, которые не появляются в обычном IE7.

Достаточно плохо, что я бы никогда никому не порекомендовал использовать режим совместимости для тестирования своего сайта ... за исключением того, что вам все еще нужно справляться со случайным пользователем, который фактически использует режим совместимости в своем живом браузере. Таким образом, вместо того, чтобы упростить задачу для разработчика, MS фактически усложнила нам задачу, добавив еще один возможный движок рендеринга в смесь, которая. Вздох.

Я не пробовал режимы совместимости IE9, но если вам что-то не так, то у них все еще есть та же проблема. Обидно (но не удивительно), что MS не узнала с первого раза, когда они совершили эту ошибку.

Вместо того, чтобы использовать режимы совместимости для тестирования, лучшее решение, которое я знаю, это использовать приложение под названием IE Tester , которое позволяет устанавливать и запускать все версии IE вместе друг с другом. Это все еще не идеально (единственный способ, которым вы станете совершенным, как вы уже обнаружили, это иметь настоящий IE7 на собственной реальной копии XP), но это намного ближе к реальной вещи, чем собственный IE ». режим совместимости.

7 голосов
/ 13 мая 2011

Я бы рекомендовал использовать HTML5BoilerPlate (http://html5boilerplate.com/) в качестве источника вдохновения и руководства.Я нахожусь в точно такой же ситуации: веб-разработчик для университета и должен написать редизайн основного сайта.

Я думаю, что вы уже сделали это, основываясь на своем источнике.Вы используете последнюю версию?Возможно, были некоторые обновления в шаблоне HTML5BoilerPlate, которые могли бы решить эту проблему.

Я нашел сотрудника с установленным настоящим IE7 и, конечно же, ваша страница выглядит плохо.Затем я проверил свой макет в реальном IE7, и он выглядит хорошо (теперь я считаю, что мне очень повезло).

Мой макет также основан на шаблоне HTML5BoilerPlate.

Еще одно предложение - попробоватькомментируя блоки кода и пытаясь выделить причину проблемы.

Я думаю, что слайд-шоу является причиной проблемы (или, по крайней мере, симптомом).Мне пришлось заново реализовать содержимое моего слайд-шоу, используя 3 разных плагина.В настоящее время я остановился на плагине цикла jQuery для такого рода контента: http://jquery.malsup.com/cycle/

Я тоже очень хочу знать причину проблемы.Кстати, сайт выглядит великолепно, когда отображается так, как он должен выглядеть.Хорошая работа!


Оформить заказ в блоге MSDN: http://blogs.msdn.com/b/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx

6 голосов
/ 20 мая 2011

Загрузите бесплатные Microsoft Virtual PC и бесплатные образы жестких дисков MS * , содержащие IE 7, 8 и т. Д., Вот почему они делают их доступными.

Кажется, существует миллион плагинов для слайдшоу jQuery, и большинство из них совместимы с IE 7.

jCarousel - один из них, и вы можете изменить его с помощью CSS, чтобы он выглядел так, как у вас сейчас.

Эта страница содержит 42 различных плагина для слайд-шоу.


РЕДАКТИРОВАТЬ:

Я также рекомендую, чтобы страница была доставлена соответствия W3C до решения других вопросов.

6 голосов
/ 16 мая 2011

Кажется, проблема в слайд-шоу

Просматривая ваш файл script.js, я вижу

/*
 * Here is the slideshow code.
 */

 // Screw ie7...
if ( !($.browser.msie && $.browser.version <= 7.0) ){

, поэтому я начал бы свой поиск там,как кажется, игнорировать IE7 и ниже ..

4 голосов
/ 16 мая 2011

Могу ли я порекомендовать вам избегать подходов к эмуляции и тестировать IE7 на вашем компьютере, используя XP Mode .

1 голос
/ 19 мая 2011

Первое: всегда проверяйте в реальном браузере.Если мы говорим о т. Е. Использовать виртуальную машину для тестирования.Никогда не полагайтесь на «режимы совместимости», «ies4linux», «ies4mac», «просто используйте wine» и тому подобное.У меня было много, но МНОГО головных болей, когда я не использовал виртуальные машины (вы можете использовать снимки на своих виртуальных машинах - каждый снимок является версией браузера. Таким образом, вы можете иметь только одно изображение, но с несколькими браузерами).

Второе: возникает ли эта проблема, даже если вы удалите этот раздел слайд-шоу из файла script.js?Проверяли ли вы, после удаления этого раздела и перезагрузки страницы, если она не является кэшированной версией старого script.js?Иногда кэшированная версия является источником всех проблем.

Небольшой взлом, чтобы обмануть ваш браузер, чтобы он не кэшировал script.js, - это добавить при вызове script.js из вашей разметки произвольное число (например, script.js? V = 100 и для каждой модификации).вы делаете со своим js, вы изменяете это число. Вы можете проверить источник SO, он использует аналогичный подход в некоторых разделах).

В-третьих: попробуйте сделать, до "отрицания" в вашем сценарии:

alert($.browser.msie);
alert($.browser.version);
alert($.browser.msie && $.browser.version <= 7.0);

... и посмотрите, предупреждает ли что-то, или это вызывает исключение.Иногда ie попытается интерпретировать ваш javascript и сгенерирует неизвестное исключение безо всякой причины: если вы не перехватите его в блоке try / catch, все будет прервано с этой точки до конца сценария.

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

0 голосов
/ 02 июня 2011

Alrgiht, это может быть ответ, который вы ищете. Перейдите к инструментам разработчика F12 и нажмите Режим браузера IE9 и Режим документа IE7 Это будут стандарты IE7, но пользовательский агент IE9. Если это не сработает, попробуйте использовать режим браузера IE7 и режим документа.

0 голосов
/ 17 мая 2011

Я с другими говорю, что возможным виновником является слайд-шоу.Я хотел бы получить более дружественное к CSS слайд-шоу:

http://flowplayer.org/tools/index.html

И, безусловно, протестировать в АКТУАЛЬНОМ браузере!Вы можете использовать веб-сайт для проверки браузера, такой как browsershots.org.На создание снимка вашего сайта уходит много времени, но это точно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...