gpt4 book ai didi

javascript - 浏览器和操作系统作为主体类

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:44 24 4
gpt4 key购买 nike

我想在主体类中包含操作系统和浏览器。我需要 pixelperfect 样式,因为字体在不同的操作系统/浏览器配置中的行为方式不同。经过一些谷歌搜索和实验。我能想到的唯一方法是使用 indexOf...

var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";

var agt=navigator.userAgent.toLowerCase();
if (agt.indexOf("opera") != -1) return 'Opera';
if (agt.indexOf("firefox") != -1) return 'Firefox';
if (agt.indexOf("safari") != -1) return 'Safari';
if (agt.indexOf("webkit") != -1) return 'Webkit';
if (agt.indexOf("msie") != -1) return 'Internet Explorer';
if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';

我认为这不是一个非常漂亮的解决方案。是否有一些正则表达式可以做到这一点?或者有没有更快的方法来做到这一点?

最佳答案

您可以使用正则表达式,但不会使它更漂亮。

基本上,扫描浏览器/操作系统/版本的用户代理字符串永远不会很漂亮。

这里有一些更漂亮的 jQuery...

// Add some classes to body for CSS hooks

// Get browser
$.each($.browser, function(i) {
$('body').addClass(i);
return false;
});


// Get OS
var os = [
'iphone',
'ipad',
'windows',
'mac',
'linux'
];

var match = navigator.appVersion.toLowerCase().match(new RegExp(os.join('|')));
if (match) {
$('body').addClass(match[0]);
};

这并不能为您提供与上面相同的类,但足以区分不同的操作系统和浏览器。

例如,您可以使用...在 Windows 上定位 Firefox

body.windows.mozilla {
background: blue;
}

See it!

Or use a plugin.

关于javascript - 浏览器和操作系统作为主体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4323186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com