JavaScript BOM
通过 BOM,JavaScript可以和浏览器对话。
一、什么是 BOM?
BOM,全称为浏览器对象模型(Browser Object Model (BOM))
二、Windows
所有浏览器都支持 Windows 对象,它代表浏览器的窗口。所有的全局对象、函数和变量都是 Windows 对象的成员。
三、Window Screen
window.screen 可以不带 windows ,直接简写为 screen
1. screen.width 和 screen.height
将会返回用户的屏幕宽度和高度,若用户设置了屏幕缩放比例,则也会进行相应的计算。
screen.width 和 screen.height 返回屏幕的宽度和高度
innerWidth 和 innerHeight 返回浏览器窗口的宽度和高度
2. screen.availWidth 和 screen.availHeight
返回用户屏幕的可用宽度和可用高度。
3. screen.colorDepth
返回用户的屏幕色深。
4. screen.pixelDepth
返回用户的像素深度。
四、Window Location
window.Location 可以不带 windows ,直接简写为 Location
1. location.href
返回当前页面的 URL 。
2. location.hostname
返回页面的因特网主机的名称。
3. location.pathname
返回页面的路径名。
4. location.protocol
返回页面的 web 协议。
5. location.port
返回页面的互联网主机端口的编号。
6. location.assign()
1 |
|
该方法用于加载新文档。
五、Window History
window.History 可以不带 windows ,直接简写为 History
1. history.back()
该方法用于加载历史列表的前一个 URL ,相当于浏览器中的后退按钮。
2. history forward()
该方法用于加载历史列表中的下一个 URL ,相当于浏览器中的前进按钮。
六、Window Navigator
window.Navigator 可以不带 windows ,直接简写为 Navigator
1. navigator.cookieEnabled
若 cookie 已启用,则该属性为 true,否则为 false 。
2. navigator.appName
该属性将返回浏览器的应用程序名称。
“Netscape” 是 IE11、Chrome、Firefox 以及 Safari 的应用程序名称的统称。
3. navigator.appCodeName
该属性返回浏览器的应用程序代码名称。
“Mozilla” 是 Chrome、Firefox、IE、Safari 以及 Opera 的应用程序代码名称。
4. navigator.product
返回浏览器引擎的产品名称。
5. navigator.appVersion
返回浏览器的版本信息。
6. navigator.userAgent
返回由浏览器发送到服务器的用户代理报头(user-agent header)。
7. navigator.platform
返回浏览器所在的操作系统。
8. navigator.language
返回浏览器的语言。
9. navigator.onLine
返回浏览器是否在线。
10. navigator.javaEnabled()
若该方法返回 true ,则 java 已启用。
11. 慎用navigator
来自 navigator 对象的信息通常是误导性的,不应该用于检测浏览器版本,因为:
- 不同浏览器能够使用相同名称
- 导航数据可被浏览器拥有者更改
- 某些浏览器会错误标识自身以绕过站点测试
- 浏览器无法报告发布晚于浏览器的新操作系统
七、弹出框
1. 警告框
1 |
|
2. 确认框
1 |
|
3. 输入框
1 |
|
八、Timing
1. 什么是 Timing 事件
JavaScript 可以在时间间隔内执行,这就是所谓的定时事件( Timing Events)。
2. setTimeout()
1 |
|
等待若干毫秒后执行函数。
3. clearTimeout()
用于停止执行 setTimeout() 中规定的函数。
1 |
|
4. setInterval()
1 |
|
每隔若干毫秒,执行一次函数。
九、Cookie
1. 什么是 cookie?
cookie 是在用户计算机中存储的文本数据,用于“记住用户信息”。
2. 创建 cookie
通过 document.cookie
来创建、读取、删除 cookie。
1 |
|
3. 读取 cookie
1 |
|
将会返回一个字符串,其中包含了所有的 cookie 。
4. 删除 cookie
通过将 cookie 的有效日期设为当前日期之前,即可删除该 cookie 。
1 |
|
应该定义 cookie 路径以确保删除正确的 cookie,如果不指定路径,一些浏览器不会让你删除 cookie。
5. cookie 字符串
Cookie 将逐个添加到字符串中,如果设置了新 cookie,则旧的 cookie 不会被覆盖。
6. cookie 实例
(1) 创建 cookie 的函数
1 |
|
上面这个函数的的参数是:cookie 的名字(cname),cookie 的值(cvalue),以及知道 cookie 过期的天数(exdays)。
通过把 cookie 名称、cookie 值和过期字符串相加,该函数就设置了 cookie。
(2) 获取 cookie 的函数
1 |
|
把 cookie 作为参数(cname)。
创建变量(name)与要搜索的文本(CNAME”=”)。
解码 cookie 字符串,处理带有特殊字符的 cookie,例如 “$”。
用分号把 document.cookie 拆分到名为 ca(decodedCookie.split(‘;’))的数组中。
遍历 ca 数组(i = 0; i < ca.length; i++),然后读出每个值 c = ca[i]。
如果找到 cookie(c.indexOf(name) == 0),则返回该 cookie 的值(c.substring(name.length, c.length)。
如果未找到 cookie,则返回 “”。
(3) 检测 cookie 的函数
1 |
|
如果已设置 cookie,将显示一个问候。
如果未设置 cookie,会显示一个提示框,询问用户的名字,并存储用户名 cookie 365 天,通过调用 setCookie 函数: