javascript的BOM


Posted in Javascript onMay 03, 2016

javascript的BOM

            ECMAScript是 JavaScript的核心,但如果要在 Web中使用 JavaScript,那么 BOM(浏览器对象模型)则无疑才是真正的核心。BOM 提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。多年来,缺少事实上的规范导致 BOM既有意思又有问题,因为浏览器提供商会按照各自的想法随意去扩展它。于是,浏览器之间共有的对象就成为了事实上的标准。这些对象在浏览器中得以存在,很大程度上是由于它们提供了与浏览器的互操作性。W3C为了把浏览器中 JavaScript最基本的部分标准化,已经将 BOM的主要方面纳入了 HTML5的规范中。

            ps:上面摘抄于《javascript高级程序设计》,BOM是浏览器的窗口对象,提供了很多窗口处理的API。在webapp框架越来越多的情况下,需要我们在同一窗口处理不同页面、不同的ajax数据,则需要我们熟悉BOM的内容。

1、window

        BOM 的核心对象是 window ,它表示浏览器的一个实例。在浏览器中, window 对象有双重角色,它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 Global 对象。

javascript的BOM

javascript的BOM

下面是open的第三个字符串属性

javascript的BOM

2、location

        location 是最有用的 BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。事实上, location 对象是很特别的一个对象,因为它既是 window 对象的属性,也是document 对象的属性;换句话说, window.location 和 document.location 引用的是同一个对象。location 对象的用处不只表现在它保存着当前文档的信息,还表现在它将 URL 解析为独立的片段,让开发人员可以通过不同的属性访问这些片段。

javascript的BOM

3、history

        history 对象保存着用户上网的历史记录, 从窗口被打开的那一刻算起。 因为 history 是 window对象的属性,因此每个浏览器窗口、每个标签页乃至每个框架,都有自己的 history 对象与特定的window 对象关联。出于安全方面的考虑,开发人员无法得知用户浏览过的 URL。不过,借由用户访问过的页面列表,同样可以在不知道实际 URL 的情况下实现后退和前进。

javascript的BOM

4、navigator

        最早由 Netscape Navigator 2.0引入的 navigator 对象,现在已经成为识别客户端浏览器的事实标准。虽然其他浏览器也通过其他方式提供了相同或相似的信息(例如,IE 中的 window.clientInfor-mation 和 Opera 中的 indow.opera ) ,但 navigator 对象却是所有支持 JavaScript 的浏览器所共有的。与其他 BOM 对象的情况一样,每个浏览器中的 navigator 对象也都有一套自己的属性。下图有navigator比较重要的信息

javascript的BOM

5、screen

        JavaScript 中有几个对象在编程中用处不大,而 screen 对象就是其中之一。 screen 对象基本上只用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素宽度和高度等。每个浏览器中的 screen 对象都包含着各不相同的属性,下表列出了所有属性及支持相应属性的浏览器。直接用下面代码查看下就行了

<!DOCTYPE html>
<html>
<head>
<script>
  console.log(screen);
</script>
</head>
<body>
  screen
</body>
</html>
Javascript 相关文章推荐
JQuery 学习笔记 element属性控制
Jul 23 Javascript
javascript 面向对象编程 万物皆对象
Sep 17 Javascript
javascript中方便增删改cookie的一个类
Oct 11 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
javascript调试过程中找不到哪里出错的可能原因
Dec 16 Javascript
Bootstrap网格系统详解
Apr 26 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
Mar 27 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
Jun 25 Javascript
django js 实现表格动态标序号的实例代码
Jul 12 Javascript
深入了解Vue3模板编译原理
Nov 19 Vue.js
原生JS封装Ajax插件(同域、jsonp跨域)
May 03 #Javascript
深入浅析Bootstrap列表组组件
May 03 #Javascript
前端jquery部分很精彩
May 03 #Javascript
jQuery代码实现对话框右上角菜单带关闭×
May 03 #Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 #Javascript
搞定immutable.js详细说明
May 02 #Javascript
Immutable 在 JavaScript 中的应用
May 02 #Javascript
You might like
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
Python中实现的RC4算法
2015/02/14 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
Django保护敏感信息的方法示例
2019/05/09 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
Python restful框架接口开发实现
2020/04/13 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
网络编辑岗位职责
2014/03/18 职场文书
模范教师事迹材料
2014/12/16 职场文书
华清池导游词
2015/02/02 职场文书
《窃读记》教学反思
2016/02/18 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python