我在使用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更新的另一台计算机上正常工作。
答案 0 :(得分:1)
我没有IE9,所以我无法尝试,但你不能做这样的事情并把它放在<head>
:
<!--[if IE 9]>
// your includes here
<![endif]-->
不确定您是否仍然看到源中包含的script
标记,但至少除非检查得到满足,否则不会执行它们。
答案 1 :(得分:0)
正如@tradyblix所说,你可以做这个客户端。他们被称为conditional comments。
如果你必须在PHP中这样做,我会使用strpos()。
$ua = $_SERVER['HTTP_USER_AGENT'];
if (stripos($ua, 'MSIE') === false || stripos($ua, 'MSIE 9') !== false)