为什么IE7兼容性后退按钮php检测不到IE7


Why does IE7 compatibility back button php can't detect as IE7?

我在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)