Operating system 获取有关操作系统的详细信息
我以为这很容易,但我想不出来 如何判断是使用Win7还是WinXP?比如操作系统的细节。Linux应该给出细节。Mac OS版本等 我想从Operating system 获取有关操作系统的详细信息,operating-system,firefox-addon,platform,Operating System,Firefox Addon,Platform,我以为这很容易,但我想不出来 如何判断是使用Win7还是WinXP?比如操作系统的细节。Linux应该给出细节。Mac OS版本等 我想从Services.appShell.hiddenDOMWindow和window.navigator读取用户代理,但在浏览器启动时,hiddenDOMWindow尚未加载 目前,我只能从以下位置获取WINNT: Components.utils.import("resource://gre/modules/osfile.jsm") console.log(OS
Services.appShell.hiddenDOMWindow
和window.navigator
读取用户代理,但在浏览器启动时,hiddenDOMWindow
尚未加载
目前,我只能从以下位置获取WINNT
:
Components.utils.import("resource://gre/modules/osfile.jsm")
console.log(OS.Constants.Sys.Name)
或
window.navigator的console.log
提供了所有这些好东西,如何在不访问window
的情况下获得这些
appCodeName:"Mozilla"
appName:"Netscape"
appVersion:"5.0 (Windows)"
battery:BatteryManager
buildID:"20140529161749"
cookieEnabled:true
doNotTrack:"yes"
geolocation:Geolocation
language:"en-US"
mimeTypes:MimeTypeArray
mozAlarms:null
mozApps:XPCWrappedNative_NoHelper
mozCameras:CameraManager
mozConnection:MozConnection
mozContacts:ContactManager
mozId:null
mozKeyboard:XPCWrappedNative_NoHelper
mozPay:null
mozPermissionSettings:null
mozPhoneNumberService:PhoneNumberService
mozPower:MozPowerManager
mozTCPSocket:null
onLine:true
oscpu:"Windows NT 5.1"
platform:"Win32"
plugins:PluginArray
product:"Gecko"
productSub:"20100101"
userAgent:"Mozilla/5.0 (Windows NT 5.1; rv:30.0) Gecko/20100101 Firefox/30.0"
vendor:""
vendorSub:""
__proto__:NavigatorPrototype
您可以使用系统信息服务。获取操作系统版本
Services.sysinfo.getProperty(“版本”);
有关支持的属性,请参阅。还要注意其特定于平台的含义(例如,在Android上有版本
和内核版本
)我发现其他一些方法可以做到这一点:
- 然后在此处查看wikipedia以了解windows版本。如果它是
NT5.1
,那么它就是WinXP
var os_string = Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler).oscpu; //this is something like `Windows NT 6.3; WOW64` and you look for 6.3 which means Windows 8.1
编辑
刚刚发现,Cc[“@mozilla.org/network/protocol;1?name=http”].getService(Ci.nsichttpprotocolhandler)
具有与上述导航器类似的userAgent
那就这样吧:
Cc[“@mozilla.org/network/protocol;1?name=http”].getService(Ci.nsithtpprotocolhandler).userAgent
它为您提供mozilla/5.0(Windows NT 5.1;rv:30.0)Gecko/20100101 Firefox/30.0
就像navigator.userAgent
一样
以下是Cc[“@mozilla.org/network/protocol;1?name=http”].getService(Ci.nsichttpprotocolhandler)
:
对于mac,您的用户代理行和oscpu行将告诉您有关操作系统的所有信息。
例如,在Mac OS X 10.9上,它会检测出英特尔Mac OS X 10.9
。很高兴你得到了10.X
Services.sysinfo.getProperty(“版本”)
在OSX 10.9和OSX 10.10.1上推出了13.4.0
,它推出了14.0.0
,因此对于mac来说可能不是一种准确的方式,但对于windows来说却很好。对于10.10.1,用户代理oscpu仅为10.10,它没有显示.1谢谢!我将此添加到MDN:中,并感谢您:)注意:navigator.platform
不同于Cc[“@mozilla.org/network/protocol;1?name=http”].getService(Ci.nsithtpprotocolhandler)。platform
第一个返回Win32,第二个返回Windows。在mac上,第一个返回MacIntel
second-one rturnsMacintosh
var os_string = Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler).oscpu; //this is something like `Windows NT 6.3; WOW64` and you look for 6.3 which means Windows 8.1
appName:"Mozilla"
appVersion:"5.0"
defaultPort:80
misc:"rv:33.0"
oscpu:"Windows NT 6.3; WOW64"
platform:"Windows"
protocolFlags:76
scheme:"http"
userAgent:"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"