window对象部分属性

JS 有的时候需要一些浏览器或者是浏览器桌面的信息。主要是 window 的 navigator 属性。

navigator.png

如上图,navigator 对象有一大堆对象,我们常用的只有以下几个:

userAgent

浏览器在它的 USER-AGENT HTTP 头部中发送的字符串。这些字符串中通常包含了 navigator 对象 appVersion 属性的所有信息。通常用来嗅探浏览器。这里讲一下,各浏览器 user-agent 的特性。现阶段只讨论主流的浏览器内核判断。

  1. IE 内核:IE 浏览器在 useragent 中包含”msie”字段,但由于早期国产浏览器大多使用的都是 IE 浏览器内核,容易误判。但随着时间的发展,使用 IE 浏览器内核浏览器已经很少了,所以只需要判断”msie”字段即可;
  2. opera 内核:opera 浏览器的判断标准是 opera 字段,opera 字段后面的数字为版本号;
  3. webkit 内核:PC 端 chrome 浏览器的判断标准是 chrome 字段,chrome 后面的数字为版本号;移动端的 chrome 浏览器判断”android“、”linux“、”mobile safari“等字段,version 后面的数字为版本号;
  4. mozilla 内核:Firefox 的判断标准是 Firefox 字段,firefox 后面的数字为版本号;

讲完原理,就基本可以实现浏览器内核及版本的判断了,顺便说一下,这样的做法现在已经不怎么推荐了,更好的办法是浏览器特性判断,比如某个浏览器有某一个特殊的方法,那么用这个方法来判断是否为这个内核的浏览器,不容易出错。

platform

这个属性值为当前操作系统所在平台。

url

window 对象的 location 属性引用的是 Location 对象,表示当前窗口文档的 URL。它的 href 属性是一个字符串,表示当前窗口文档的 URL。它的其他属性不多讲,这里主要讲讲 url 传参的获取。直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
var getParam = function (key) {
var queryStr = location.search.substring(1);
var pairsArr = queryStr.split("&");
for (var i = 0; i < pairsArr.length; i++) {
if (pairsArr[i].split("=")[0] == key) {
return pairsArr[i].split("=")[1];
}
}
};
// 载入新文档
location = url;
// 浏览历史
history.go(n);

[越努力,越幸运!]