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 相关文章推荐
window.open被浏览器拦截后的自定义提示效果代码
Nov 19 Javascript
js jquery获取随机生成id的服务器控件的三种方法
Jul 11 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
javascript格式化json显示实例分析
Apr 21 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
Nov 02 Javascript
用file标签实现多图文件上传预览
Feb 14 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 Javascript
js oncontextmenu事件使用详解
Mar 25 Javascript
js使用原型对象(prototype)需要注意的地方
Aug 28 Javascript
VUE脚手架的下载和配置步骤详解
Apr 01 Javascript
React路由鉴权的实现方法
Sep 05 Javascript
原生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中break及continue两个流程控制指令区别分析
2011/04/18 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
range 标准化之获取
2011/08/28 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
整理Python中的赋值运算符
2015/05/13 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
英国儿童图书网站:Scholastic
2017/03/26 全球购物
索桥的故事教学反思
2014/02/06 职场文书
停车位租赁协议书
2014/09/24 职场文书
稽核岗位职责范本
2015/04/13 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
办公室卫生管理制度
2015/08/04 职场文书