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 相关文章推荐
在b/s开发中经常用到的javaScript技术
Aug 23 Javascript
javascript 常用关键字列表集合
Dec 04 Javascript
基于JavaScript实现瀑布流布局(二)
Jan 26 Javascript
js操作数据库实现注册和登陆的简单实例
May 26 Javascript
JS图片压缩(pc端和移动端都适用)
Jan 12 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
Mar 09 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
May 18 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
基于Vue实现支持按周切换的日历
Sep 24 Javascript
Node.js 使用axios读写influxDB的方法示例
Oct 26 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
Vue从TodoList中学父子组件通信
Feb 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正则表达式之定界符和原子介绍
2012/10/05 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
php根据年月获取季度的方法
2014/03/31 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
js 通用订单代码
2013/12/23 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
学习Node.js模块机制
2016/10/17 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
理解Python中的类与实例
2015/04/27 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
python圣诞树编写实例详解
2020/02/13 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
高一生物教学反思
2014/01/17 职场文书
小学敬老月活动方案
2014/02/11 职场文书
三好生演讲稿
2014/09/12 职场文书
会计求职信怎么写
2015/03/20 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
正确的理解和使用Django信号(Signals)
2021/04/14 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python