screen和navigator是window对象下的两个对象,可以不带window.直接使用screen和navigator。screen包含浏览器窗口的信息,navigator包含浏览器及系统的信息。
screen对象
window.screen 对象包含有关用户屏幕的信息,使用的时候可以不带window。下面代码我们在控制台打印一下screen,screen对象主要有的是尺寸的属性。
console.log(screen);//Screen{...}
窗口尺寸
screen.width - 屏幕宽度
screen.height - 屏幕高度
screen.availWidth - 可用的屏幕宽度
screen.availHeight - 可用的屏幕高度
console.log(screen.width);//1536
console.log(screen.height);//864
console.log(screen.availWidth);//1536
console.log(screen.availHeight);//824
navigator对象
window.navigator对象和上面的screen对象差不多,window.navigator 对象包含有关访问者浏览器的信息,window.navigator对象在编写时也可以不使用 window 这个前缀。
console.log(navigator);//Navigator{...}
navigator对象包含的信息明显更多一些,但是navigator对象的信息具有误导性,因为navigator的数据可能会被更改,或者浏览器识别错误等。一些常见的navigator属性信息:
- navigator.appCodeName - 浏览器代号
- navigator.appName - 浏览器名称
- navigator.appVersion - 浏览器版本
- navigator.cookieEnabled - Cookies是否启用
- navigator.platform - 硬件平台
- navigator.userAgent - 用户代理
- navigator.language - 用户代理语言
console.log(navigator.appCodeName);//Mozilla
console.log(navigator.appName);//Netscape
console.log(navigator.appVersion);//5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
console.log(navigator.cookieEnabled);//true
console.log(navigator.platform);//win32
console.log(navigator.userAgent);//Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
console.log(navigator.language);//zh-CN
由于 navigator 可误导浏览器检测,使用对象检测可用来嗅探不同的浏览器,比如window.opera对象只有Opera浏览器才有。