ECMAScript是JavaScript的核心,但如果要在Web中使用JavasCript,那么BOM(浏览器对象模型)则无疑才是真正的核心。

1. 下面我们来了解一下BOM的核心对象——window

  window表示浏览器的一个实例,它既是JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。这就意味着在网页中定义的任何对象、变量和函数,都已window作为其Global对象,因此有权访问parseInt()等方法;同时,所有在全局作用域总声明的变量和函数都会变成window对象的属性和方法。例: 

var sName = "erhuo";
function sayName(){console.log("my name is "+this.sName};
}console.log("This text from window : "+window.sName);//"erhuo"
sayName();//"erhuo"
window.sayName();//"erhuo"

上面代码中声明的变量sName和函数sayName被自动归在了window名下,于是我们就可以通过window.sName和window.sayName()来调用了。

2.窗口关系及框架windowtopparent

  如果页面中包含有框架,则每个框架都有一个属于自己的window对象,并且保存在frames集合中。

  在frames集合中,可以通过数值索引(从0开始,从左至右,从上到下)或者框架名称里放我那相应的window对象。每个window对象都一个name属性,即框架名称。例:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title></title>
</head><frameset rows="160,*"><frame src="" name="firstFrame" style="background:green;"></frame><frameset cols="50%,*"><frame style="background:blue;"></frame><frame style="background:gray;"></frame></frameset></frameset>
</html>

  以上代码床架了一个框架集,其中一个框架居上,两个居下。对于这个例子老说,我们可以使用window.frames[0]或者window.frames["firstFrame"]来引用上方的框架,不过我们还是最好使用top而非window来引用这些框架,例如用top.frames[0]。

  我们知道,top对象始终只想页面最高(最外)层的框架,也就是我们的浏览器窗口,使用top可以使我们能更准确第引用到框架。

  与top对象相对应的另一个window对象是parent。顾名思义,parent对象始终指向当前框架的上一级框架。在某些情况下,parent等于top;但是在没有框架的情况下,parent一定等价于top对象(此时它们都同时等于window对象)。

转载于:https://www.cnblogs.com/HDman2012/archive/2013/03/06/2946351.html

JavaScript_BOM_window相关推荐

最新文章

  1. 18、计算机图形学——BRDF与渲染方程
  2. 分享Kali Linux 2017年第二周镜像文件
  3. [攻防世界 pwn]——level2
  4. ASP.NET获取任意网页HTML代码
  5. onSaveInstanceState与onRestoreInstanceState何时调用、如何使用
  6. 讲讲我对比特币和区块链的认知,挖矿不难,挖到难
  7. Python URL编码
  8. 家用冰箱里面用的抽屉模具图档分析
  9. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(七)(数字图像基础))
  10. 高龄脑卒中患者的运动处方
  11. php如何将excel数据导入到数据库,【PHP】将Excel数据导入到MySQL数据库中
  12. 二十一世纪大学英语读写教程学习笔记(原文)——2 - Conversational Ballgames(对话风格与球类运动)
  13. mysql myisam 主键关联_MySQL中myisam和innodb的主键索引有什么区别?
  14. 特征重要性计算方法及神经网络的特征重要性
  15. uiautomator2+python实现企业微信自动打卡
  16. linux全局搜索文件
  17. selenium webdriver操作chrome options、 启用无痕模式、缓存烦恼
  18. 指向性麦克风--心形麦克风设计(五)
  19. 基于多普勒效应的动作检测
  20. -bash: java: command not found (Linux)

热门文章

  1. window/linux composer安装/卸载
  2. [转] Nodejs 进阶:Express 常用中间件 body-parser 实现解析
  3. web服务器原理(二)
  4. Git 服务器镜像迁移 - 携带提交日志,tag,branch。。
  5. Myeclipse学习总结(5)——Myeclipse常用快捷键再学习
  6. MySQL数据备份语句
  7. EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证...
  8. Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
  9. Serendipity解决IE缓存为0
  10. SQL Server 2005 Analysis Services