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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记5 js语句
Oct 11 Javascript
js返回上一页并刷新的多种实现方法
Feb 26 Javascript
Node.js 异步编程之 Callback介绍(一)
Mar 30 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
Apr 30 Javascript
在Mac OS下使用Node.js的简单教程
Jun 24 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
Vue项目中引入外部文件的方法(css、js、less)
Jul 24 Javascript
基于Vue开发数字输入框组件
Dec 19 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
Oct 25 Javascript
解决一个微信号同时支持多个环境网页授权问题
Aug 07 Javascript
深入详解JS函数的柯里化
Jun 09 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
在smarty中调用php内置函数的方法
2013/02/07 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php实现插入排序
2015/03/29 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
django 将model转换为字典的方法示例
2018/10/16 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Pygame的程序开始示例代码
2020/05/07 Python
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
中医药大学市场营销专业自荐信
2013/09/29 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
JavaScript流程控制(循环)
2021/12/06 Javascript