我在IE7兼容模式和HTML5方面遇到了奇怪的问题。
症状:直接转到我的主页,使用PHP可以检测到它是IE7。点击表单提交按钮并单击返回按钮后,即使仍处于兼容模式,它也不再检测为 IE7。必须刷新或重新加载才能再次检测为 IE7。
我该怎么做才能使它更强大?请不要说使用get_browser和浏览。我不想继续保持这种浏览,.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 更新的计算机上工作正常。
我没有IE9,所以我不能尝试,但你不能做这样的事情并将其放在<head>
上:
<!--[if IE 9]>
// your includes here
<![endif]-->
不确定仍然看到源中包含的script
标签对您来说是否重要,但至少除非满足检查,否则它不会执行它们。
正如@tradyblix所说,你可以做这个客户端。它们称为条件注释。
如果你必须在 PHP 中执行此操作,我会使用 strpos()。
$ua = $_SERVER['HTTP_USER_AGENT'];
if (stripos($ua, 'MSIE') === false || stripos($ua, 'MSIE 9') !== false)