BOM是browser object model的缩写,简称浏览器对象模型。先看看下面这张图

window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。

通过图可以看出 平时经常用到的一些对象都是BOM对象。

下面将一一为您介绍 这些子对象的用途。

一  window对象

window对象除了是BOM中所有对象的父对象外,还包含一些窗口控制函数。

JavaScript中的任何一个全局函数或变量都是window的属性。如下代码中的全局变量sTest

 var sTest="dreamdu";
document.write(sTest==window.sTest);

由于sTest是全局变量,因此可以通过window.sTest访问这个变量

window函数索引:

1. 窗体控制函数

    • JavaScript moveBy()  从当前位置水平移动窗体x个像素,垂直移动窗体y个像素,x为负数,将向左移动窗体,y为负数,将向上移动窗体
    • JavaScript moveTo() 移动窗体左上角到相对于屏幕左上角的(x,y)点,当使用负数做为参数时会吧窗体移出屏幕的可视区域
    • JavaScript resizeBy() 相对窗体当前的大小,宽度调整w个像素,高度调整h个像素。如果参数为负值,将缩小窗体,反之扩大窗体
    • JavaScript resizeTo() 把窗体宽度调整为w个像素,高度调整为h个像素

2. 窗体滚动轴控制函数

    • JavaScript scrollTo() 在窗体中如果有滚动条,将横向滚动条移动到相对于窗体宽度为x个像素的位置,将纵向滚动条移动到相对于窗体高度为y个像素的位置
    • JavaScript scrollBy() 如果有滚动条,将横向滚动条移动到相对于当前横向滚动条的x个像素的位置(就是向左移动x像素),将纵向滚动条移动到相对于当前纵向滚动条高度为y个像素的位置(就是向下移动y像素)

3. 窗体焦点控制函数

    • JavaScript focus() 使窗体或控件获取焦点
    • JavaScript blur() 与focus函数相反,使窗体或控件失去焦点

4. 新建窗体函数

    • JavaScript open() 打开(弹出)一个新的窗体
    • JavaScript close() 关闭窗体
    • JavaScript opener 实际上就是通过window.open打开的窗体的父窗体。通过opener可以实现跨窗体之间的通讯,但是要保证是在同一域名下,而且一个窗体要包含另一个窗体的opener。

5. 对话框函数

6. 状态栏属性

    • JavaScript window.defaultStatus 属性
    • JavaScript window.status 属性

7. 时间等待与间隔函数

二  document对象

document对象是window对象的属性,document对象包含一个节点对象,此对象包含每个单独页面的所有HTML元素,这就是W3C的DOM对象。

document属性

    • cookie -- 用户cookie
    • title -- 当前页面title标签中定义的文字
    • URL -- 当前页面的URL

由于document代表HTML文档的内容,因此可以通过它表示文档中加载的一些元素,这些元素全部通过集合访问。

    • anchors -- 文档中所有锚(a name="aname")的集合
    • applets -- 文档中所有applet标签表示的内容的集合
    • embeds -- 文档中所有embed标签表示的内容的集合
    • forms -- 文档中所有form标签表示的内容的集合
    • images -- 文档中所有image标签表示的内容的集合
    • links -- 文档中所有a(链接)标签表示的内容的集合

document函数

    • JavaScript write() 在文档中写入字符串
    • JavaScript writeln() 函数
    • JavaScript document.open() 打开已经载入的文档。代码示例
       var win = window.open("about:blank","dreamdu");
      win.document.open();
      win.document.write("welcome to dreamdu!");
      win.document.close();

      上面这个示例首先新建一个空白文档,并打开open,写入内容,最后完成显示关闭文档close。

    • JavaScript document.close() 函数

三 frames对象

frames用于表现HTML页面当前窗体的中的框架集合。

如果页面使用框架,将产生一个框架集合frames,在集合中可用数字(从0开始,从左到右,逐行索引)或名字索引框架

<iframe id="color_iframe" src="" frameborder="0" scrolling="no" style="text-align: center;"></iframe>

如上代码可以选择一个框架 var iframeDocument = window.frames["color_iframe"].contentWindow.document;

四 history对象

浏览者通常可以使用浏览器的前进与后退按钮访问曾经浏览过的页面。JavaScript的history对象记录了用户曾经浏览过的页面,并可以实现浏览器前进与后退相似的导航功能

可以通过back函数后退一个页面,forward函数前进一个页面,或者使用go函数任意后退或前进页面,还可以通过length属性查看history对象中存储的页面数

由于安全的原因,不能显示history对象中的历史页面URL

history对象函数

五  location对象

location用于获取或设置窗体的URL,并且可以用于解析URL,是BOM中最重要的对象之一。location的8个属性都是可读写的,但是只有href与hash的才有意义。例如改变location.href会重新定位到一个URL,而修改location.hash会跳到当前页面中的anchor(<a id="name">或者<div id="id">等)名字的标记(如果有),而且页面不会被重新加载。

location对象属性图示

location属性

    • JavaScript hash 属性 -- 返回URL中#符号后面的内容
    • JavaScript host 属性 -- 返回域名
    • JavaScript hostname 属性 -- 返回主域名
    • JavaScript href 属性 -- 返回当前文档的完整URL或设置当前文档的URL
    • JavaScript pathname 属性 -- 返回URL中域名后的部分
    • JavaScript port 属性 -- 返回URL中的端口
    • JavaScript protocol 属性 -- 返回URL中的协议
    • JavaScript search 属性 -- 返回URL中的查询字符串
    • JavaScript assign() 函数 -- 设置当前文档的URL
    • JavaScript replace() 函数 -- 设置当前文档的URL,并在history对象的地址列表中删除这个URL
    • JavaScript reload() 函数 -- 重新载入当前文档(从server服务器端)
    • JavaScript toString() 函数 -- 返回location对象href属性当前的值

六  navigator对象

navigator对象通常用于检测浏览器与操作系统的版本。navigator中最重要的是userAgent属性,返回包含浏览器版本等信息的字符串,其次cookieEnabled也很重要,使用它可以判断用户浏览器是否开启cookie。

常用的navigator属性

    • appCodeName -- 浏览器代码名的字符串表示
    • appName -- 官方浏览器名的字符串表示
    • appVersion -- 浏览器版本信息的字符串表示
    • cookieEnabled -- 如果启用cookie返回true,否则返回false
    • javaEnabled -- 如果启用java返回true,否则返回false
    • platform -- 浏览器所在计算机平台的字符串表示
    • plugins -- 安装在浏览器中的插件数组
    • taintEnabled -- 如果启用了数据污点返回true,否则返回false
    • userAgent -- 用户代理头的字符串表示

七  screen对象

screen对象用于获取用户的屏幕信息。

screen对象属性

    • JavaScript availHeight 属性 -- 窗口可以使用的屏幕高度,单位像素
    • JavaScript availWidth 属性 -- 窗口可以使用的屏幕宽度,单位像素
    • JavaScript colorDepth 属性 -- 用户浏览器表示的颜色位数,通常为32位(每像素的位数)
    • JavaScript pixelDepth 属性 -- 用户浏览器表示的颜色位数,通常为32位(每像素的位数)(IE不支持此属性)
    • JavaScript height 属性 -- 屏幕的高度,单位像素
    • JavaScript width 属性 -- 屏幕的宽度,单位像素

availWidth与availHeight属性非常有用,例如:可以使用下面的代码填充用户的屏幕:

 window.moveTo(0,0);
window.resizeTo(screen.availWidth, screen.availHeight);

javascript学习之BOM的更多相关文章

  1. [转] JavaScript学习:BOM和DOM的区别和关联

    BOM 1.  BOM是Browser Object Model的缩写,即浏览器对象模型. 2.  BOM没有相关标准. 3.  BOM的最根本对象是window. 从1可以看出来:BOM和浏览器关系 ...

  2. javascript学习笔记 BOM和DOM详解

    js组成 我们都知道, javascript 有三部分构成,ECMAScript,DOM和BOM,根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异. 1. DOM 是 W ...

  3. 黑马JavaScript学习一 BOM之Window对象定时器功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【学习笔记】:JavaScript中的BOM对象

    JavaScript中的BOM对象 BOM(Browser Object Model):浏览器对象模型. BOM可用于对浏览器窗口进行访问,但BOM没有相关的标准,所以根据浏览器的不同,其中定义的对象 ...

  5. JavaScript学习总结(二)

    JavaScript学习总结(二) ---- 对象 在JavaScript中,几乎用到的每个js都离不开它的对象.下面我们深入了解一下js对象. js中对象的分类跟之前我们学过的语言中函数的分类一样, ...

  6. Javascript学习6 - 类、对象、继承

    原文:Javascript学习6 - 类.对象.继承 Javasciprt并不像C++一样支持真正的类,也不是用class关键字来定义类.Javascript定义类也是使用function关键字来完成 ...

  7. JavaScript学习--(智能社视频)

    JavaScript学习,这是智能社官网上的JS视频,讲解的挺不错的,就是没有视频的demo,在视频中附上自己编写的一些demo... 下载地址:http://pan.baidu.com/s/1cPz ...

  8. JavaScript学习总结 之对象

    JavaScript学习总结(二) ---- 对象 在JavaScript中,几乎用到的每个js都离不开它的对象.下面我们深入了解一下js对象. js中对象的分类跟之前我们学过的语言中函数的分类一样, ...

  9. JavaScript 引入方式 语言规范 语言基础 数据类型 常用方法 数组 if_else 比较运算符 for while 函数 函数的全局变量和局部变量 {Javascript学习}

    Javascript学习 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript ...

随机推荐

  1. 【知识必备】内存泄漏全解析,从此拒绝ANR,让OOM远离你的身边,跟内存泄漏say byebye

    一.写在前面 对于C++来说,内存泄漏就是new出来的对象没有delete,俗称野指针:而对于java来说,就是new出来的Object放在Heap上无法被GC回收:而这里就把我之前的一篇内存泄漏的总 ...

  2. 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了

    前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...

  3. Angular源码分析之$compile

    @(Angular) $compile,在Angular中即"编译"服务,它涉及到Angular应用的"编译"和"链接"两个阶段,根据从DO ...

  4. [C#] C# 知识回顾 - 特性 Attribute

    C# 知识回顾 - 特性 Attribute [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5911289.html 目录 特性简介 使用特性 特性 ...

  5. Windows API 设置窗口下控件Enable属性

    参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-put.html http://www.yuanjiaocheng.net/we ...

  6. 微软发布VSBT,无需安装Visual Studio即可实现项目编译

    安装了Visual Studio的那些使用微软平台的开发者通常能够非常容易地操作自己的项目:打开解决方案,修改内容,设置好所有必须的文件以及配置后编译项目.但是在构建服务器或者持续交付系统等没有安装V ...

  7. 反应器(Reactor)和主动器(Proactor)

    网络方面用的比较多的库是libevent和boost.asio,两者都是跨平台的.其中libevent是基于Reactor实现的,而boost.asio是基于Proactor实现的.Reactor和P ...

  8. 在将 varchar 值 'xinpian' 转换成数据类型 int 时失败?

    把int类型的值修改为varchar类型的值

  9. 我的MYSQL学习心得(十) 自定义存储过程和函数

    我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...

  10. MySql 死锁时的一种解决办法

    转自:http://blog.csdn.net/mchdba/article/details/38313881 之前也遇到一次,今天又遇到了这个问题,所以这次必须解决,网上找到这篇文章帮了大忙,方便以 ...