Почему php кнопки совместимости с IE7 не может определить как IE7? - PullRequest
1 голос
/ 18 мая 2011

У меня странные проблемы с режимом совместимости IE7 и HTML5.

Симптомы: перейдя прямо на мою домашнюю страницу, используя PHP, можно обнаружить, что это IE7. После нажатия кнопки отправки формы и нажатия кнопки возврата назад он больше не распознается как IE7, даже находясь в режиме совместимости. Необходимо обновить или перезагрузить, чтобы снова определить как IE7.

Что я могу сделать, чтобы сделать это более надежным? Пожалуйста, не говорите использовать get_browser и browscap. Я не хочу продолжать поддерживать этот browscap.ini.

в заголовке HTML:

<?php 
    /**
    *   IE 7 has trouble with jscrollpane, so disable for all IE except for 9 which works just fine.
    */ 
    $getBrowser = $_SERVER['HTTP_USER_AGENT']; 
    if( (!stristr($getBrowser,'MSIE')) || stristr($getBrowser,'MSIE 9')):
?>
<script src="jquery/jquery.mousewheel.js"></script>
<link  rel="stylesheet" href="styles/jquery.jscrollpane.css" />
<script src="jquery/jquery.jscrollpane.min.js"></script>
<script  src="jquery/js.js"></script>
<?php endif; ?>

Обновлен:

$getBrowser = $_SERVER['HTTP_USER_AGENT']; 
        if( stristr($getBrowser,'MSIE') === false)

Перемещенная строка js.js в:

<!--[if IE 9 ]>
    <script  src="jquery/js.js"></script>
<![endif]-->

Все еще делает то же самое, нажимая кнопку назад.

Редактировать: Человек .... Я думаю, у меня серьезные проблемы с машиной. Ящик с окнами должен быть испорчен после обновления Windows. Извините за этот сумасшедший материал. Отлично работает на другом компьютере, на котором еще не запущено обновление Windows.

Ответы [ 2 ]

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

У меня нет IE9, поэтому я не могу попробовать, но вы не можете сделать что-то подобное и поместить его в <head>:

<!--[if IE 9]>
     // your includes here
<![endif]-->

Не уверен, если для вас имеет значение видеть теги script, включенные в исходный код, но, по крайней мере, он не выполнит их, если проверка не будет выполнена.

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

Как сказал @tradyblix, вы можете сделать это на стороне клиента. Они называются условными комментариями .

Если вам нужно сделать это в PHP, я бы использовал strpos ().

$ua = $_SERVER['HTTP_USER_AGENT'];
if (stripos($ua, 'MSIE') === false || stripos($ua, 'MSIE 9') !== false)
...