[TOC]
>[info]BOM是browser object model的缩写,简称浏览器对象模型。
* BOM是browser object model的缩写,简称浏览器对象模型
* BOM提供了独立于内容而与浏览器窗口进行交互的对象
* 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window
* BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性
![](https://box.kancloud.cn/402175d9751ca8c1b561585a7ddda1b3_809x481.png)
## window对象
>[info]window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。
* 所有浏览器都支持 window 对象。它表示浏览器窗口。
* 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
* 全局变量是 window 对象的属性。
* 全局函数是 window 对象的方法
### Window 尺寸
>[info]有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。
对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
~~~
window.innerHeight //浏览器窗口的内部高度
window.innerWidth //浏览器窗口的内部宽度
~~~
对于 Internet Explorer 8、7、6、5:
~~~
document.documentElement.clientHeight
document.documentElement.clientWidth
~~~
或者
~~~
document.body.clientHeight
document.body.clientWidth
~~~
实用的 JavaScript 方案(涵盖所有浏览器):
~~~
var w=window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h=window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
~~~
### 定时器
#### setInterval() 方法
>[info]setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval()方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
~~~
<script type="text/javascript">
setInterval(code,millisec[,"lang"]);
</script>
~~~
<table class="dataintable">
<tbody>
<tr>
<th>
参数
</th>
<th>
描述
</th>
</tr>
<tr>
<td>
code
</td>
<td>
必需。要调用的函数或要执行的代码串。
</td>
</tr>
<tr>
<td>
millisec
</td>
<td>
必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。
</td>
</tr>
</tbody>
</table>
~~~
<input type="text" id="clock" size="35"/>
<script language=javascript>
var int=self.setInterval("clock()",50)//定时器
function clock(){
//产生一个时间对象
var t=new Date()
//附值到id为clock这个地方
document.getElementById("clock").value=t
}
</script>
<button onclick="int=window.clearInterval(int)">
Stop interval</button>//清除定时器
~~~
#### setTimeout() 方法
>[info]setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
~~~
<script type="text/javascript">
setTimeout(code,millisec)
</script>
~~~
>[danger]提示:setTimeout() 只执行 code 一次。
## History 对象
>[info]History 对象包含用户(在浏览器窗口中)访问过的 URL。
History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。
### length 属性
>[info]属性声明了浏览器历史列表中的元素数量。
~~~
<script type="text/javascript">
document.write(history.length);
</script>
~~~
### back() 方法
>[info]方法可加载历史列表中的前一个 URL(如果存在)。
调用该方法的效果等价于点击后退按钮或调用 history.go(-1)。
~~~
<script type="text/javascript">
history.back()
</script>
~~~
### forward() 方法
>[info]方法可加载历史列表中的下一个 URL。
调用该方法的效果等价于点击前进按钮或调用 history.go(1)。
~~~
<script type="text/javascript">
history.forward()
</script>
~~~
### go()方法
>[info]方法可加载历史列表中的某个具体的页面。
~~~
<script type="text/javascript">
history.go(number|URL);
</script>
~~~
## Location 对象
>[info]Location对象包含有关当前 URL 的信息。
Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。
### assign() 方法
>[info]方法可加载一个新的文档。
~~~
<script type="text/javascript">
location.assign(URL);
</script>
~~~
### reload() 方法
>[info]方法用于重新加载当前文档。
~~~
<script type="text/javascript">
location.reload(force)
</script>
~~~
>[danger]**作业:** 写一个按钮,点击刷新页面。
- 序言
- 第一章:准备工作
- 写在学习之前的话
- web应用开发结构
- 开发工具/环境
- 第二章:展现层面(HTML/CSS)
- HTML简介
- HTML基础
- HTML编码
- HTML链接
- HTML图像
- HTML列表
- HTML表单
- HTML表格(分水岭)
- HTML 实体
- HTML框架
- CSS层叠样式表
- CSS选择器
- CSS文本/字体
- CSS继承和叠加
- CSS框模型
- CSS浮动(分水岭)
- CSS定位
- CSS背景
- CSS图标字体
- CSS补充
- 开发技巧
- 第三章:展现层面(Javascript)
- JS简介
- JS实现
- JS输出交互
- JS变量
- JS数据类型
- JS运算符
- JS流程控制(分水岭)
- JS函数
- JS数组
- JS对象(分水岭)
- JS数组对象
- JS字符串对象
- JS数学对象
- JS日期对象
- JS BOM对象(分水岭)
- JS DOM对象
- JS事件对象
- JS元素对象
- JS DOM节点
- 第四章:展现层面(Jquery)
- JQ简介
- JQ使用
- JQ选择器
- JQ筛选
- JQ属性
- JQ-CSS
- JQ事件
- JQ文档处理
- JQ效果
- JQ-ajax
- 第五章:逻辑/业务层面(PHP)
- PHP简介
- PHP变量
- PHP数据类型
- PHP常量
- PHP运算符
- PHP流程控制
- PHP函数(分水岭)
- PHP日期
- PHP数学
- PHP数组
- PHP字符串
- PHP正则表达式(分水岭)
- PHP目录操作
- PHP文件
- PHP上传/下载
- PHP面向对象(分水岭)
- PHP图像处理
- PHP会话控制
- Ajax异步处理
- PHPMysql扩展
- PHPMysqli扩展
- PHPPdo扩展
- PHP接口
- PHP命名空间
- 第六章:逻辑/业务层面(框架设计)
- 第七章:存储层面(mysql)
- Mysql基础
- Mysql Sql简介
- Mysql数据库
- Mysql数据类型
- Mysql数据表
- Mysql操作记录
- Mysql查询
- Mysql修改表结构
- Mysql日期与时间
- Mysql分组统计
- Mysql多表查询
- Mysql安全
- Mysql存储引擎
- Mysql事务
- Mysql视图
- Mysql触发器
- Mysql存储过程
- Mysql存储函数
- Mysql优化
- 第八章:服务器(Linux)
- Linux介绍与安装
- Shell
- 目录与文件操作
- VIM编辑器使用
- 帐号管理
- SUDO
- 权限控制
- 压缩与打包
- 软件安装
- 计划任务
- 进程管理
- 宝塔Linux面板