Почему моя страница работает в IE7 режиме IE7, но не в IE7 сама?
Недавно я начал жить с нашей новой домашней страницей, после тщательного тестирования ее в каждом браузере и режимах IE9 (не только режиме совместимости, но и фактической эмуляции IE7 и IE8). Сайт работает в каждом режиме, не говоря уже о современных браузерах. Однако после его запуска я получил электронное письмо, в котором говорится, что сайт был очень сломан в IE7. Я пошел на заброшенную машину и загрузил Windows XP, запустил IE7 и загрузил страницу. К моему ужасу, макет был действительно сломан! (Не только слайд-шоу!)
Самое главное, почему моя страница не работает в IE7, хотя она работает в IE7 режиме в IE9? И как второстепенный вопрос, что может быть "неправильным" с ним?
Изменить. Я выяснил, что одной из моих проблем может быть слайд-шоу, но добавление .ie7 #slideshow {display:none !important}
даже не скроет слайд-шоу. Я не могу получить к нему доступ через CSS.
Изменить 2. Еще одна проблема, которая появляется только в родном IE7 - нижнем колонтитуле на этой домашней странице, и this страница, является ультра-крошечным текстом, который нельзя масштабировать. Он не делает этого в IE9 режиме IE7 (не совместимости) или в любом другом браузере. Другой пример несоответствия.
Ответы
Ответ 1
Я не знаю о режиме IE7 IE7 совместимости, но режим IE7 совместимости, встроенный в IE8, хорошо известен тем, что он не является идеальной копией реального IE7. Он имеет большое количество ошибок и собственных причуд, которые не отображаются в обычном IE7.
Было достаточно плохо, что я никогда бы не рекомендовал, чтобы кто-либо фактически использовал режим совместимости для тестирования своего сайта... за исключением того, что вам все еще нужно справляться с случайным пользователем, который на самом деле использует режим совместимости в своем реальном браузере. Поэтому вместо того, чтобы упростить работу разработчика, MS действительно усложнила нам задачу, добавив еще один возможный механизм рендеринга в микс, который. Вздох.
Я не пробовал режимы совместимости с IE9, но если ваш опыт - это что-то, что нужно, то у них все еще есть такая же проблема. Это позор (но не удивительно), что MS не училась с первого раза, когда они совершили эту ошибку.
Вместо использования режимов совместимости для тестирования лучшим решением, которое я знаю, является использование приложения под названием IE Tester, которое позволяет устанавливать и запускать все версии IE рядом друг с другом. Он по-прежнему не идеален (единственный способ добиться совершенства, как вы уже выяснили, состоит в том, чтобы иметь реальный IE7 на своей реальной копии XP), но он намного ближе к реальности, чем IE, совместимость ".
Ответ 2
Я бы рекомендовал использовать 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
Ответ 3
Проблема связана со слайд-шоу
Просматривая ваш script.js
файл, я вижу это
/*
* Here is the slideshow code.
*/
// Screw ie7...
if ( !($.browser.msie && $.browser.version <= 7.0) ){
поэтому я бы начал искать там, поскольку, похоже, он игнорирует IE7 и ниже.
Ответ 4
Загрузите бесплатный Microsoft Virtual PC и MS бесплатные изображения на жестком диске, содержащий IE 7, 8 и т.д., почему они делают их доступными.
Кажется, есть миллион плагинов слайд-шоу jQuery, и большинство из них совместимы с IE 7.
jCarousel является одним из них, и вы можете изменить его с помощью CSS, чтобы выглядеть так, как вы сейчас.
Эта страница содержит 42 различных плагина слайд-шоу.
EDIT:
Я также рекомендую, чтобы страница была переведена в соответствие W3C, прежде чем решать другие проблемы.
Ответ 5
Могу ли я рекомендовать вам избегать подходов эмуляции и тестирования в реальном IE7 на вашем компьютере, используя Режим XP.
Ответ 6
Сначала: всегда проверяйте фактический браузер. Если мы говорим об этом, используйте виртуальную машину для ее проверки. Никогда не полагайтесь на "режимы совместимости", "ies4linux", "ies4mac", "просто используйте вино" и т.д. У меня было много, но много головных болей, когда вы не используете виртуальные машины (вы можете использовать моментальные снимки на своих виртуальных машинах - каждый снимок - это версия браузера. Таким образом, вы можете иметь только одно изображение, но с несколькими браузерами).
Во-вторых: эта проблема возникает, даже если вы удалите это слайд-шоу из своего script.js? Вы проверили, удалил ли этот раздел и перезагрузил вашу страницу, если это не кешированная версия старого script.js? Иногда кешированная версия является источником всех проблем.
Небольшой взломать ваш браузер в кэширование script.js - это добавить при вызове script.js из вашей разметки произвольное число (script.js? v = 100, например, и для каждой модификации, которую вы выполняете с помощью js, вы изменяете это число. Вы можете проверить SO-источник, он использует аналогичный подход в некоторых разделах).
В-третьих: попробуйте сделать, прежде чем "отрицание" в вашем script:
alert($.browser.msie);
alert($.browser.version);
alert($.browser.msie && $.browser.version <= 7.0);
... и посмотрите, есть ли что-то или что-то предупреждает или вызывает исключение. Иногда т.е. Будет пытаться интерпретировать ваш javascript и поднять неизвестное исключение без всякой причины: если вы не поймаете его в блоке try/catch, все будет разбиваться с этой точки на конец script.
Я знаю, это метод проб и ошибок, но мы должны изолировать все и попытаться точно понять, что вызывает ошибку. При необходимости повторите третий совет в разделе слайд-шоу.
Ответ 7
Alrgiht, это, возможно, ответ ur, который ищет. Перейдите к инструментам разработчика F12 и нажмите режим браузера IE9 и Режим документа IE7. Это будут стандарты IE7, но пользовательский пользователь IE9. Если это не сработает, попробуйте использовать режим браузера IE7 и режим документа.
Ответ 8
Я с другими, говоря, что возможный виновник - это слайд-шоу. Я бы получил более слайд-шоу с CSS:
http://flowplayer.org/tools/index.html
И определенно проверьте в браузере ACTUAL! Вы можете использовать веб-браузерный веб-сайт, например browsershots.org. Они берут время, чтобы произвести снимок вашего сайта, но это точно.