如果浏览器是IE6/IE7,我需要显示不同的HTML.我知道如果我们只讨论样式信息,条件注释工作正常,但在这种特殊情况下它是实际的标记.
我将有一个无序的图像列表,它将是png-24.它们将具有圆角(因此需要png-24提供的透明度)并且将在CSS(3)中具有圆形边框样式.由于IE6无法识别png-24,我希望有一个替代的图像列表,这些图像是jpg已经包含在图像中的边框.这将使IE6/IE7保持高兴,而符合标准的浏览器将获得正确的版本.
(我这样做是因为该网站可能会成长为许多图像,并且需要很容易为主题.如果我在代码中生成边框,只需更改边框颜色并在网站范围内更改.我意识到IE仍然会必须是手动的,但如果他们真的希望IE6支持它,我可以为此单独收费.)
所以我的问题是使用PHP执行此操作的最佳方法是什么?是否有任何缺点?
我正在运行一个集成了WhichBrowser的html页面.
正如README文件中所解释的,我已经在下面的代码中添加了以下代码<head>:
<script>
(function(){var p=[],w=window,d=document,e=f=0;p.push('ua='+encodeURIComponent(navigator.userAgent));e|=w.ActiveXObject?1:0;e|=w.opera?2:0;e|=w.chrome?4:0;
e|='getBoxObjectFor' in d || 'mozInnerScreenX' in w?8:0;e|=('WebKitCSSMatrix' in w||'WebKitPoint' in w||'webkitStorageInfo' in w||'webkitURL' in w)?16:0;
e|=(e&16&&({}.toString).toString().indexOf("\n")===-1)?32:0;p.push('e='+e);f|='sandbox' in d.createElement('iframe')?1:0;f|='WebSocket' in w?2:0;
f|=w.Worker?4:0;f|=w.applicationCache?8:0;f|=w.history && history.pushState?16:0;f|=d.documentElement.webkitRequestFullScreen?32:0;f|='FileReader' in w?64:0;
p.push('f='+f);p.push('r='+Math.random().toString(36).substring(7));p.push('w='+screen.width);p.push('h='+screen.height);var s=d.createElement('script');
s.src='http://localhost/mysite/libs/whichbrowser/detect.js?' + p.join('&');d.getElementsByTagName('head')[0].appendChild(s);})();
</script>
Run Code Online (Sandbox Code Playgroud)
然后是以下代码(在<body>)中:
<script>
Browsers = new WhichBrowser();
alert("You are using " + Browsers);
</script>
Run Code Online (Sandbox Code Playgroud)
我正在运行easyPHP,并考虑.htaccess,因此.js由PHP解释器解析.
当运行页面时(当然是从服务器),我在行上获得以下错误Browsers = new WhichBrowser();:"未定义WhichBrowser".
我做错了什么?
我创建了一个包含实验性HTML5内容的网站.所以旧的浏览器无法显示它.
现在我想检测它是否是访问者使用的旧浏览器并将其重定向到名为"/ old"的子文件夹,在那里我将我的网站显示为非HTML5网站并显示用户使用旧浏览器的提示.
如果用户使用旧版浏览器,我该如何重定向?
我的任务是将jQuery放入webapp,需要特定于Internet Explorer 8浏览器的功能(不需要7个).这该怎么做?
在jQuery 1.8中可以做到:
if ($.browser.msie && $.browser.version == '8') { /* does not matter */ }
Run Code Online (Sandbox Code Playgroud)
在版本1.9 $.browser中删除.建议$.support没有帮助.