javascript - 服务器端浏览器检测? Node .js

标签 javascript browser node.js browser-detection

我见过的大多数实现都是用于客户端的浏览器检测。我只是想知道是否可以在向客户端发送任何资源之前进行浏览器检测。

谢谢。

最佳答案

var ua = request.headers['user-agent'],
    $ = {};

if (/mobile/i.test(ua))
    $.Mobile = true;

if (/like Mac OS X/.test(ua)) {
    $.iOS = /CPU( iPhone)? OS ([0-9\._]+) like Mac OS X/.exec(ua)[2].replace(/_/g, '.');
    $.iPhone = /iPhone/.test(ua);
    $.iPad = /iPad/.test(ua);
}

if (/Android/.test(ua))
    $.Android = /Android ([0-9\.]+)[\);]/.exec(ua)[1];

if (/webOS\//.test(ua))
    $.webOS = /webOS\/([0-9\.]+)[\);]/.exec(ua)[1];

if (/(Intel|PPC) Mac OS X/.test(ua))
    $.Mac = /(Intel|PPC) Mac OS X ?([0-9\._]*)[\)\;]/.exec(ua)[2].replace(/_/g, '.') || true;

if (/Windows NT/.test(ua))
    $.Windows = /Windows NT ([0-9\._]+)[\);]/.exec(ua)[1];

这应该适合你。只需将其放入您的响应处理程序中即可。

关于javascript - 服务器端浏览器检测? Node .js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6163350/

相关文章:

javascript - 如何在 WinRT 应用程序(Javascript、C#)中区分 Windows Phone 8.1 和 Windows 8.1?

javascript - 如何复制对象数组的数组并能够操作复制的数组而不影响原始数组

c# - 使用c#获取chrome浏览器标题

javascript - 如何在浏览器中保存表单输入

node.js - Promise.all([]) 等价于promise.then().then()

javascript - 在 useState 钩子(Hook)回调中使用副作用可以吗?

javascript - 闭包可以使用 new 关键字,例如在创建新对象/类时有什么区别

javascript - Python - 使用请求模块重建 Javascript 生成的代码

javascript - mongodb native 驱动程序获取没有数据库名称的集合名称

node.js - 如何在 Loopback 中返回随机对象?