小白科普之JavaScript的BOM模型
一、什么是BOM
1. BOM是browser object model的缩写,简称浏览器对象模型;
2. BOM提供了独立于内容而与浏览器窗口进行交互的对象,描述了与浏览器进行交互的方法和接口;
3. 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window;
4. BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性;
5. BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C;
6. BOM最初是Netscape浏览器标准的一部分;
二 BOM概览

1)可以移动,调整浏览器大小的window对象,可以用于导航的location对象与history对象,可以获取浏览器,操作系统与用户屏幕信息的navigator与screen对象,可以使用document作为访问HTML文档的入口,管理框架的frames对象等;
2)window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象;
3)由于window是顶层对象,因此调用它的子对象时可以不显示的指明window对象;
三、window对象-- window对象是BOM中所有对象的核心
- window,中文"窗口";
- window对象除了是BOM中所有对象的父对象外,还包含一些窗口控制函数;
3.1 全局的window对象
var age= 29;
function sayAge(){
alert(this.age);(由于sayAge存在于全局作用域,this.age被影射到window.age)
}
alert(window.age);//
sayAge();//
window.sayAge();//
- 全局变量不能通过delete操作符删除;
- window对象上定义的属性可以删除;
var age= 29;
window.color = "red";
delete window.age;//false,通过chrome和ff运行都没有报错
delete window.color;//true
3.2 window与self对象
3.3 window的子对象
window的常见子对象包括:
(1)document对象
(2)frames 对象: HTML页面当前窗体的中的框架集合
(3)history 对象
(4)location 对象
(5)navigator 对象
(6)screen 对象
3.4 window函数
(1)窗体控制函数(下面四个函数不适用于框架,只能对最外层的window对象使用)
- moveBy() 函数
- moveTo() 函数
- resizeBy() 函数
- resizeTo() 函数
- open() 函数-- 打开(弹出)一个新的窗体
window.open(url, name, features, replace)
url -- 要载入窗体的URL| 参数名称 | 类型 | 说明 |
|---|---|---|
| height | Number | 设置窗体的高度,不能小于100 |
| left | Number | 说明创建窗体的左坐标,不能为负值 |
| location | Boolean | 窗体是否显示地址栏,默认值为no |
| resizable | Boolean | 窗体是否允许通过拖动边线调整大小,默认值为no |
| scrollable | Boolean | 窗体中内部超出窗口可视范围时是否允许拖动,默认值为no |
| toolbar | Boolean | 窗体是否显示工具栏,默认值为no |
| top | Number | 说明创建窗体的上坐标,不能为负值 |
| status | Boolean | 窗体是否显示状态栏,默认值为no |
| width | Number | 创建窗体的宽度,不能小于100 |
(3)关闭窗口函数close()
所有的窗体都可以使用此函数关闭;
对于通过使用open函数打开的窗体,使用close函数将直接关闭;
非open打开的窗体,或者对整个浏览器调用close函数时将弹出一条关闭信息,询问是否关闭。用户可以拒绝关闭。
3.5 opener 属性
var wroxWin = window.open("http://chinaso.com","wroxWindow","height=400,width=300");
alert(wroxWin.opener==window);//true
当把wroxWin.opener==null;时,就是告诉浏览器创建新的标签页不需要与打开它的标签页通信
3.6 对话框函数
- alert() 函数:弹出消息对话框(对话框中有一个OK按钮)
- confirm() 函数:弹出消息对话框(对话框中包含一个OK按钮与Cancel按钮)
- prompt() 函数:弹出消息对话框(对话框中包含一个OK按钮、Cancel按钮与一个文本输入框)
prompt() 函数接收两个参数,要显示给用户的文本提示和文本输入域的默认值(可以是一个空字符串)
3.7 时间等待与间隔函数
(1)setTimeout() 函数
setTimeout(codes, interval);
参数:
codes:代码段的字符串表示(与eval函数的参数相同),或者是匿名函数、函数名;
interval :等待的毫秒数(通常用于产生动画效果);
setTimeout函数的ID标识:每次调用setTimeout函数都会产生一个唯一的ID,可以通过clearTimeout函数(此函数的参数接收一个setTimeout返回的ID)暂停setTimeout函数还未执行的代码。
(2)clearTimeout() 函数
(3)setInterval() 函数:间隔指定的毫秒数不停地执行指定的代码
setInterval(codes, interval)
(4)clearInterval() 函数
var num=0;
var max=10;
var intervalId = null;
function incrementNumber(){
num++;
if (num==max){
clearInterval( intervalId) ;
alert(Done);
}
}
intervalId = setInterval(incrementNumber,500);
var num=0;
var max=10;
function incrementNumber(){
num++;
if(num<max){
setTimeout(incrementNumber,500);
}else{
alert("Done");
}
setTimeout(incrementNumber,500);
四、frames 对象
| window | 当前框架 |
| top | 最顶层的框架,就是浏览器窗体 |
| parent | 包含当前框架的父框架 |
| self | 当前框架,总是等于window对象 |
五、document 对象
- document是BOM中最重要对象之一
- document对象是window对象的属性
- document对象包含一个节点对象,此对象包含每个单独页面的所有HTML元素,这就是W3C的DOM对象
- 这个对象的独特之处是唯一一个既属于BOM又属于DOM的对象
5.1 document属性
- cookie -- 用户cookie
- title -- 当前页面title标签中定义的文字
- URL -- 当前页面的URL
- anchors -- 文档中所有锚(a name="aname")的集合
- applets -- 文档中所有applet标签表示的内容的集合
- embeds -- 文档中所有embed标签表示的内容的集合
- forms -- 文档中所有form标签表示的内容的集合
- images -- 文档中所有image标签表示的内容的集合
- links -- 文档中所有a(链接)标签表示的内容的集合
5.2 document函数
- write() 函数-- 在文档中写入字符串
- writeln() 函数-- 在文档中写入字符串,并在字符串的末尾增加一个换行符
- document.open() 函数-- 打开已经载入的文档
var win = window.open("about:blank","dreamdu");//新建一个空白文档
win.document.open();打开文档
win.document.write("welcome to dreamdu!");
win.document.close();
- document.close() 函数
六、location 对象
- location,中文"位置"
- location既是window对象的属性又是document对象的属性
- location包含8个属性,其中7个都是当前窗体的URL的一部分,剩下的也是最重要的一个是href属性,代表当前窗体的URL
- location的8个属性都是可读写的,但是只有href与hash的写才有意义。例如改变location.href会重新定位到一个URL,而修改location.hash会跳到当前页面中的anchor(<a id="name">或者<div id="id">等)名字的标记(如果有),而且页面不会被重新加载

6.1 location属性
- hash 属性 -- 返回URL中#符号后面的内容
- host 属性 -- 返回域名
- hostname 属性 -- 返回主域名
- href 属性 -- 返回当前文档的完整URL或设置当前文档的URL
- pathname 属性 -- 返回URL中域名后的部分
- port 属性 -- 返回URL中的端口
- protocol 属性 -- 返回URL中的协议
- search 属性 -- 返回URL中的查询字符串
- assign() 函数 -- 改变浏览器的位置
location.assign("http://chinaso.com");
window.location = "http://chinaso.com";
location.href = "http://chinaso.com";
- replace() 函数 -- 设置当前文档的URL,用户不能返回到前一个页面,并在浏览器的历史记录中不会生成新纪录
- reload() 函数 -- 重新载入当前文档,如果页面自上次请求以来没有改变过,页面从浏览器缓存中重新加载;如果要强制从服务器加载,则reload(true);
七、navigator对象--通常用于检测浏览器与操作系统的版本、检测插件等
- appCodeName -- 浏览器的名称,通常都是Mozilla,即使在其他浏览器中也是
- appName -- 完整的浏览器名称
- appVersion -- 浏览器版本信息
- cookieEnabled -- 如果启用cookie返回true,否则返回false
- javaEnabled -- 如果启用java返回true,否则返回false
- platform -- 浏览器所在的系统平台
- plugins -- 安装在浏览器中的插件数组
- taintEnabled -- 如果启用了数据污点返回true,否则返回false
- userAgent -- 浏览器的用户代理字符串
八、history对象
- 浏览者通常可以使用浏览器的前进与后退按钮访问曾经浏览过的页面。JavaScript的history对象记录了用户曾经浏览过的页面,并可以实现浏览器前进与后退相似的导航功能
- 可以通过back函数后退一个页面,forward函数前进一个页面,或者使用go函数任意后退或前进页面,还可以通过length属性查看history对象中存储的页面数
history.go(-1);//后退一页
history.go(1);//前进一页
history.go(”chinaso.com“);//前进一页
九、screen对象
小白科普之JavaScript的BOM模型的更多相关文章
- 小白科普之JavaScript的DOM模型
微信公众号“前端大全”推送了一篇名为“通俗易懂的来讲讲DOM”的文章,把javascript原生DOM相关内容讲解的很详细.仔细读了一遍,觉得整理总结的不错,对自己也很使用,所以把内容整理过来,并根据 ...
- 小白科普之JavaScript的函数
一 概述 1.1 函数声明 (1)function命令 函数就是使用function命令命名的代码区块,便于反复调用.这种声明方式叫做函数的声明(Function Declaration). func ...
- 小白科普之JavaScript的JSON
一.对json的理解 json是一种数据格式,不是一种编程语言,json并不从属于javascript. json的语法可以表示以下三种类型的值 1)简单值 ...
- 小白科普之JavaScript的数组
一.与其他语言数据的比较 相同点:有序列表 不同点:js的数组的每一项可以保存任何类型的数据:数组的大小是可以动态调整的 二.数组创建的两种方法 1) var colors = new ...
- JavaScript---网络编程(6)-Dom和Bom模型概念讲解(节点获取,window对象)
本节讲Dom和Bom模型概念讲解(节点获取,window对象). out.js: 写了2个输出到页面的函数. function println(param){ document.write(param ...
- BOM模型中常用对象 定义计数器 网页跳转 网页前进后退
今天上午学了的BOM模型中常用对象,了解了一部分的属性 For循环的规律 外层循环控制行 内层循环控制列 <!doctype html> <html> <head> ...
- JavaScript的BOM和DOM
JavaScript的BOM和DOM 1,window对象,所有浏览器都支持window对象,它表示浏览器窗口 BOM(browser Object Model)是指浏览器对象模型,它使JavaScr ...
- [JavaScript之BOM与DOM]
[JavaScript之BOM与DOM] BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ( ...
- Java Script基础(四) BOM模型
一.BOM模型 BOM模型(Browser Object Model),也称为文档对象模型,它包含浏览器相关的属性和方法,例如操作,前进后退按钮,控制地址栏,关闭浏览器窗口,打开新窗口等等.它包含的对 ...
随机推荐
- PHP PC端接入支付宝和微信感悟
想着中秋节的时候把异步线程学习完,同事说有个PHP的支付要帮忙做一下,虽然中秋节计划是把C#的异步学完,不过还是喜欢挑战,好久没有像大学一样这么认真的熬夜解决问题了.由于在大学学过asp,它和php有 ...
- C#爬页面总结
错误的思路是这样的:发送一个访问页面的请求过去,得到一个html页面,然后我要的数据全都在这上面.后来发现不是这样的,也猜到可能是页面加载之后还有js代码的ajax的异步加载,那么问题来了?我是不是要 ...
- grootJs 系统常用API接受
groot.absUrl(url) 把相对路径转换为绝对路径 groot.model 把vm对象转换为json 去掉系统生成的的属性groot.model groot.log 输出到控制台 兼容低版本 ...
- CoffeeScript及相关文本标记语言
粗步看了下CoffeeScript(简称cs),发现cs这玩意还是有些问题,当然最大的问题之一是缺乏称手的工具.要是能放VS里编译调试当然好.但是转来转去的,真不如直接多敲几个JS字符串. 问题之二就 ...
- [BZOJ 2186][Sdoi2008]沙拉公主的困惑(欧拉函数)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2186 分析: 就是要求1~n!中与m!互质的数的个数 首先m!以内的就是φ(m!) 关 ...
- 机器学习中的矩阵方法03:QR 分解
1. QR 分解的形式 QR 分解是把矩阵分解成一个正交矩阵与一个上三角矩阵的积.QR 分解经常用来解线性最小二乘法问题.QR 分解也是特定特征值算法即QR算法的基础.用图可以将分解形象地表示成: 其 ...
- 初探JAVA中I/O流(二)
1.缓冲输入文件 FileReader BufferedReader FileReader可以直接对文件进行读操作.但是简化编程,加快读取速度,我们加入了缓冲机制,使用了BufferedReader. ...
- java、java -version 可以javac没有内部命令的问题
环境变量没有配错的情况下就是path变量的值要放在最前面
- beta汇总
第一天:http://www.cnblogs.com/hxh969012806/p/5034085.html 第二天:http://www.cnblogs.com/zyk150910/p/503783 ...
- struts2动态方法
动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性 这种方式我们前面已经用到过, ...