您好
在JavaScript中,我如何执行与下面的代码(PHP)相同的功能?
<?php
if (strpos($_SERVER["HTTP_USER_AGENT"], 'Chrome') == true) {
echo "<style>h1 { color: red; }</style>";
}
?>
答案 0 :(得分:0)
使用Modernizr脚本为您执行功能检测,然后修改CSS代码以利用添加的类。
答案 1 :(得分:0)
if ( navigator.userAgent.indexOf('Chrome') > -1 )
document.write("<style type=\"text/css\">h1 { color: red; }</style>");
另一种变体,更短
navigator.userAgent.indexOf('Chrome') > -1 ?
document.write("<style type=\"text/css\">h1 { color: red; }</style>") : "";
答案 2 :(得分:0)
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
if (is_chrome) {
document.writeln("<style>h1 { color: red; }</style>");
}
Chrome检测来源: http://davidwalsh.name/detecting-google-chrome-javascript
您可能需要使用javascript进行不同的浏览器检测: http://javascriptly.com/2008/09/javascript-to-detect-google-chrome/
答案 3 :(得分:0)
在智能手机浏览器上,由于不同版本的浏览器与javascript / css的行为不同,因此情况有点复杂。例如,android浏览器不支持html5直到android os 2.0,在后来的os版本中它支持html5视频标签但不支持音频标签。同样,移动游猎也有变化。因此,最好的方法是查看用户代理字符串并解析它的os版本/ platform / os并采取相应的行动。我写了一个小函数来从浏览器用户代理中检索一些信息。
var agentInfo=(function(){
var info={},
ua=navigator.userAgent.split(/[()]/)[1].split(/;/);
info.platform=ua[0] && ua[0].toLowerCase();
info.version=ua[2] && ua[2].match(/[0-9._]+/g)[0];
info.os=ua[2] && (temp=ua[2].match(/[^0-9_.]+/g)[0].toLowerCase()) && (temp=/(windows)|(linux)|(mac)|(iphone)|(android)/.exec(temp)) && temp[0];
return info;
})();
现在基于os / platform / version,你可以编写适当的css。