javascript高级程序设计第三版 第8章 BOM
来源:互联网 发布:淘宝哎呦喂被挤爆了 编辑:程序博客网 时间:2024/06/07 07:26
BOM(浏览器对象模型)提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。
8.1 window对象
window对象既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。
8.1.1 全局作用域
全局作用域中声明的变量,函数都会变成window对象的属性和方法。
定义全局变量与在window对象上直接定义属性还是有一点差别:全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以。
//使用var语句添加的window属性有一个名为[[Configurable]]的特性,这个特性的值被设置为false,因此这样定义的属性不可以通过delete操作符删除。var age = 29;window.color = "red";//在IE < 9 时抛出错误,在其他所有浏览器中都返回falsedelete window.age;//在IE < 9 时抛出错误,在其他所有浏览器中都返回truedelete window.color;alert(window.age);//29alert(window.color);//undefined
尝试访问未声明的变量会抛出错误,但是通过查询window对象,可以知道某个可能未声明的变量是否存在。
//这里会抛出错误,因为oldValue未定义var newValue = oldValue;//这里不会抛出错误,因为这是一次属性查询var newValue = window.oldValue;//undefined
8.1.2 窗口关系及框架
top对象始终指向最高(最外)层的框架,也就是浏览器窗口。
window对象指向的都是那个框架的特定实例,而非最高层的框架。
parent(父)对象始终指向当前框架的直接上层框架,在没有框架的情况,parent一定等于top。
self对象,他始终指向window
window.frames[0];window.frames["topFrame"];top.frames[0];top.frames["topFrame"];frames[0];frames["topFrame"];
8.1.3 窗口位置
screenLeft和screenTop属性,分别用于表示窗口相对于屏幕左边和上边的位置。
screenX和screenY相同。
8.1.4 窗口大小
用处不大,略
8.1.5 导航和打开窗口
window.open()
window.opener保存着打开它的原始窗口对象。这个属性只在弹出窗口中的最外层window对象(top)中有定义,而且指向调用window.open()的窗口或框架。
//检测弹出窗口是否被屏蔽var blocked = false;try{ var wroxWin = window.open("http://xxx","_blank"); if(wroxWin == null){ blocked = true; }} catch (ex){ blocked = true;}if(blocked){ alert("The popup was blocked!");}
8.1.6 间歇调用和超时调用
//超时调用,指定的时间过后执行代码,第二个参数告诉JavaScript再过多少时间把当前任务添加到队列中。如果队列是空的,那么添加的代码会立即执行;如果队列不是空的,那么它就要等前面的代码执行完了以后再执行var timeoutId = setTimeout(function(){ alert("Hello world!");},1000);//把它取消clearTimeout(timeoutId);//间歇调用var intervalId = setInterval(function(){ alert("Hello world!");},1000);//把它取消clearInterval(intervalId);
超时调用的代码都是在全局作用域中执行,this的值在非严格模式下指向window对象,在严格模式下是undefined。
使用超时调用来模拟间歇调用的是一种最佳模式。
8.1.7 系统对话框
略
8.2 location对象
8.2.1 查询字符串参数
location.search的参数需要用decodeURIComponent()解码
8.2.2 位置操作
打开新URL
location.assign("http://write.blog.csdn.net/mdeditor");window.location = "http://write.blog.csdn.net/mdeditor";location.href = "http://write.blog.csdn.net/mdeditor";
修改location对象的属性都会在浏览器历史记录中生成一条新记录,用户可以通过“后退”回到前一个页面。要禁用可以采用replace()方法。
location.replace("http://write.blog.csdn.net/mdeditor");
reload()重新加载当前显示的页面。建议放在最后一行。
location.reload();//重新加载(有可能从缓存中加载)location.reload(true);//重新加载(从服务器重新加载)
8.3 navigator对象
识别客户端浏览器的事实标准。
8.3.1 检测插件
//非ie,读取插件名判断是否存在navigator.plugins[i].name//ietry{ new ActiveXObject(name); return true;}catch(ex){ return false;}
8.3.2 注册处理程序
略
8.4 screen对象
略
8.5 history对象
history对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。
//后退一页history.go(-1);//前进一页history.go(1);//前进两页history.go(2);//跳转到最近的wrox.com页面history.go("wrox.com");//后退history.back();//前进history.forward();history.length;
- javascript高级程序设计第三版 第8章 BOM
- 读书笔记 JavaScript 高级程序设计(第三版)-- 第1章
- 读书笔记 JavaScript 高级程序设计(第三版)-- 第2章
- JavaScript高级程序设计(第3版)第三章读书笔记
- javascript高级程序设计第三版 第9章 客户端检测
- javascript高级程序设计第三版 第10章 DOM
- javascript高级程序设计第三版 第11章 DOM扩展
- javascript高级程序设计第三版 第13章 事件
- javascript高级程序设计第三版 第20章 JSON
- 《JavaScript高级程序设计》BOM
- 《JavaScript高级程序设计》--BOM
- Javascript高级程序设计(BOM)
- Javascript高级程序设计第二版第八章--BOM--笔记
- 《JavaScript高级程序设计》读书笔记--8-BOM
- Javascript高级程序设计 第八章 --- BOM
- 《JavaScript高级程序设计 第三版》学习笔记 (九)BOM详解
- 《JavaScript高级程序设计 第三版》学习笔记 (九)BOM详解
- 《JavaScript高级程序设计 第三版》学习笔记 (九)BOM详解
- 基于maven发送邮件系列(5)----基于quartz定时的另一种方式:配置文件
- swift3.0 语法
- 线程基本概念
- UniqueService(解决事务时获取服务地址后直接使用)
- 剑指offer-14:调整数组顺序,奇数位于偶数前面
- javascript高级程序设计第三版 第8章 BOM
- 常见错误
- JZOJ 5264. 【NOIP2017模拟8.12A组】化学
- java自定义注解
- 关于使用tomcat自带连接池xapool偶尔无法获取数据库连接的问题(报空指针)
- TensorFlow 技术解析与实战 笔记 01
- 转一个可用的log4j.properties
- win32和DFS(目前不能限制拐弯数为2)实现假的连连看
- fiddler的简单使用