BOM 浏览器对象模型

BOM (Browser Object Model,浏览器对象模型)提供了通过 JavaScript 访问和控制浏览器窗口(window)、显示器(screen)与浏览历史(history)等对象的接口。

BOM 并非 W3C 的标准,而是在各家浏览器中逐渐形成的一致性接口。

BOM 可以看做是 Browser API 的一部分。

BOM 对象

###1.Window

window 对象代表了一个浏览器窗口(标签)或一个嵌入到页面中的框架(iframe)。

参考:WebPlatform/dom/window

属性

###applicationCache

返回 ApplicationCache 对象的引用。

###frames

以数组形式返回页面中的所有框架。

###closed

窗口是否被关闭。

属性值:

1.true 已关闭
2.false 未关闭
###console 返回 Console 对象的引用。 ###defalutStatus 读取或设置状态栏文本。 ###document 返回 Document 对象的只读引用。 ###frameElement 获取当前框架窗口的 frame 引用。 ###hidden 获取窗口是否隐藏。 ###history 返回 History 对象的只读引用。 ###indexedDB 获取 IDBFactory 对象的引用。 ###innerHeight 返回窗口文档显示区的高度,单位为像素。 ###innerWidth 返回窗口文档显示区的宽度,单位为像素。 注:innerHeight 和 innerWidth 不包含菜单栏、工具栏及滚动条的尺寸。 ###length 获取窗口中的框架数量。 ###location 返回 Location 对象的引用。 ###localStorage 获取 LocalStorage 对象的引用。 ###maxConnectionsPerServer 获取浏览器与每个服务器之间的最大连接数。 ###name 设置或返回窗口标题。 ###navigator 返回 Navigator 对象的只读引用。 ###offscreenBuffering 设置或获取是否屏幕外渲染。 ###opener 返回创建当前窗口的父窗口的引用。 ###outerHeight 返回窗口的外边缘高度。 ###outerWidth 返回窗口的外边缘宽度。 ###pageXOffset 设置或返回当前页面左侧距离文档显示区左侧的距离。 ###pageYOffset 设置或返回当前页面顶部距文档显示区顶部的距离。 ###parent 返回父窗口的引用。 ###screen 返回 Screen 对象的只读引用。 ###self 返回当前窗口的引用,相当于 window。 ###status 设置或读取状态栏的文本信息。 ###top 返回最顶层父窗口的引用。 ###screenLeft/screenX 返回窗口左边缘距显示器左边缘的距离。 ###screenTop/screenY 返回窗口上边缘距显示器上边缘的距离。 ###XMLHttpRequest 获取 XMLHttpRequest 对象的引用。 方法 ###alert() 弹出警告对话框。 语法: window.alert("msg");
参数: 1.msg 警告信息,支持转义字符
弹出的警告对话框中会显示警告信息,窗口底部有一个[确定]按钮。 ###blur() 取消当前窗口的焦点。 语法: window.blur();
###clearInterval() 取消定时器。 语法: window.clearInterval(interval_id);
参数: 1.interval_id setInterval() 方法返回的定时器 ID
###clearTimeout() 取消计时器。 语法: window.clearTimeout(timeout_id);
参数: 1.timeout_id setTimeout() 方法返回的计时器 ID
###close() 关闭当前窗口。 语法: window.close();
###confirm() 弹出确认对话框。 语法: window.confirm("msg");
参数: 1.msg 提示信息,支持转义字符
弹出的确认对话框中会显示提示信息,窗口底部有[确定]和[取消]按钮。 返回值: 1.true 用户点击了[确定]按钮
2.false 用户点击了[取消]按钮
###focus() 使当前窗口获取焦点。 语法: window.focus();
###getComputedStyle() 获取对象或伪对象的 CSSStyleDeclaration 属性。 语法: window.getComputedStyle(elmt,pseudoName);
参数: 1.elmt 目标对象
2.pseudoName 伪元素(可选)
返回值: 1.CSSStyleDeclaration 对象
###getSelection() 获取当前的 HTMLSelection 对象。 ###item() 取得对象中指定的子对象。 语法: obj.item(name,index);
参数: 1.name name/id 属性值或索引值(从 0 开始)
2.index 索引值
###matchMedia() 获取 MediaQueryList 对象。 语法: obj.matchMedia();
###moveBy() 根据指定的偏移量移动窗口。 语法: window.moveBy(x,y);
参数: 1.x 横向移动距离(向右为正)
2.y 纵向移动距离(向下为正)
###moveTo() 将窗口移动到指定位置。 语法: window.moveTo(x,y);
参数: 1.x 目标点横坐标
2.y 目标点纵坐标
###open() 打开新的窗口,或修改已存在的窗口。 语法: window.open(url,name,features,replace);
参数: 1.url 要在新窗口中载入的 URL
2.name 新窗口的名称(标识符)
3.features 新窗口特征列表(参考下面的列表,多个值之间使用 , 分隔)
4.replace 是否替换窗口的历史记录条目(true:替换历史记录;false:新建历史记录)
####窗口特征列表 channelmode ?? yes/1 启用
no/0 关闭
directories ?? yes/1 启用
no/0 关闭
fullscreen ?? yes/1 启用
no/0 关闭
height 文档显示区高度 px 像素值
width 文档显示区宽度 px 像素值
left 窗口 x 坐标 px 像素值
top 窗口 y 坐标 px 像素值
location ?? yes/1 启用
no/0 关闭
menubar ?? yes/1 启用
no/0 关闭
resizable ?? yes/1 启用
no/0 关闭
scrollbars ?? yes/1 启用
no/0 关闭
status ?? yes/1 启用
no/0 关闭
titlebar ?? yes/1 启用
no/0 关闭
toolbar ?? yes/1 启用
no/0 关闭
####实际表现(Chrome 27): 新建标签: window.open();
window.open("","id");
新标签中打开页面: window.open("http://www.w3school.com.cn");
window.open("http://www.w3school.com.cn","id");
window.open("http://www.w3school.com.cn","id","");
打开新窗口,应用位置和尺寸属性: window.open("http://www.w3school.com.cn","id","left=100,top=100,width=400,height=400");
其他属性无效。 ###print() 打印当前页面(等同于执行浏览器的打印功能)。 语法: window.print();
###prompt() 显示输入对话框。 语法: window.prompt(text,default);
参数: 1.text 提示信息,支持转义字符
2.default 默认文本
弹出的输入对话框中会显示提示信息,窗口中间有一个文本框,底部有[确定]和[取消]按钮。 返回值: 1.文本框中的文本 用户点击了[确定]按钮
2.null 用户点击了[取消]按钮
###resizeBy() 根据指定的像素调节窗口大小。 语法: window.resizeBy(x,y);
参数: 1.x 窗口宽度变化值
2.y 窗口高度变化值
x、y 为像素数。当其值 >0 时,窗口增大;< 0 时,窗口缩小。 ###resizeTo() 调节窗口大小到指定的尺寸。 语法: window.resizeTo(x,y);
参数: 1.x 窗口宽度
2.y 窗口高度
###scrollBy() 滚动当前页面。 语法: window.scrollBy(x,y);
参数: 1.x 横向滚动距离(向右为正)
2.y 纵向滚动距离(向下为正)
###scrollTo()/scroll() 滚动当前页面到指定位置。 语法: window.scrollTo(x,y);
参数: 1.x 目标位置横坐标
2.y 目标位置纵坐标
###setInterval() 定义定时器。 语法: window.setInterval("func",millisec);
参数: 1.func 定时调用的函数名称(字符串格式)
2.millisec 定时器周期(毫秒)
func 函数会在设定的时间间隔后被 重复执行 ,直到使用 clearInterval(interval_id) 清除了该定时器。 返回值: interval_id 定时器的 ID
###setTimeout() 定义计时器。 语法: window.setTimeout("func",millisec);
参数: 1.func 延迟调用的函数名称(字符串格式)
2.millisec 计时器时长(毫秒)
func 函数会在设定的时间后被 执行一次 ,可以使用 clearTimeout(timeout_id) 清除该计时器。 返回值: timeout_id 计时器的 ID

###2.Navigator

navigator 对象包含了浏览器的相关信息。

属性

plugins

以数组形式返回页面中的嵌入对象。

appCodeName

浏览器代码名称。

appMinorVersion

浏览器的次要版本号。

appName

浏览器名称。

appVersion

包括浏览器的平台及版本信息。

browserLangauge

浏览器的语言。

cookieEnabled

是否已启用 cookie。

cpuClass

CPU 信息。

onLine

在线模式/脱机模式。

platform

运行平台。

systemLangauge

浏览器所在系统使用的语言。

userAnget

用户代理信息。

userLangauge

浏览器所在系统使用的语言。

方法

javaEnabled()

检测浏览器是否启用了 Java。

语法:

navigator.javaEnabled();

返回值:

1.true 已启用
2.false 已禁用

taintEnabled()

检测浏览器是否启用了 data tainting。

语法:

navigator.taintEnabled();

返回值:

1.true 已启用
2.false 已禁用

###3.Screen

screen 对象包含了显示器屏幕的相关信息。

属性

###availHeight

返回屏幕窗口显示区域的高度(不高扩任务栏)。

###availWidth

返回屏幕窗口显示区域的宽度(不高扩任务栏)。

###bufferDepth

设置或返回调色板比特值。

###colorDepth

设置或返回设备或缓冲器的调色板比特值。

###deviceXDPI

返回屏幕水平 DPI(每英寸点数)。

###deviceYDPI

返回屏幕垂直 DPI(每英寸点数)。

###fontSmoothingEnabled

返回是否启用了字体平滑。

###height

返回屏幕高度。

###localXDPI

返回屏幕水平 DPI(每英寸点数)。

###localYDPI

返回屏幕垂直 DPI(每英寸点数)。

###pixelDepth

返回屏幕的颜色分辨率。

###updateInterval

设置或返回屏幕的刷新频率。

###width

返回屏幕宽度。

###4.History

history 对象代表了浏览历史。

属性

###length

历史列表的长度(浏览过的页面数量)。

方法

###back()

加载历史列表中的前一个页面(后退一步)。

语法:

history.back();

###forward()

加载历史列表中的下一个页面(前进一步)。

语法:

history.forward();

###go()

加载历史列表中指定的页面。

语法:

history.go(n);

参数:

1.n 要加载的页面与当前页面的相对距离(0 代表当前页面;-1 代表上一个页面)

###5.Location

location 对象包含了当前页面 URL 的相关信息。

属性

###hash

设置或返回当前 URL 中的锚信息(从 # 开始的部分)。

###host

设置或返回当前 URL 中的主机名和端口号。

###hostname

设置或返回当前 URL 中的主机名。

###href

设置或返回当前 URL。

###pathname

设置或返回当前 URL 中的路径部分。

###port

设置或返回当前 URL 中的端口号。

###protocol

设置或返回当前 URL 的协议。

###search

设置或返回当前 URL 中的查询信息(以 ? 开始的部分)。

方法

###assign()

加载新页面。

语法:

location.assigh(url);

参数:

1.url 要加载的页面 URL

###reload()

重新加载当前页面。

语法:

location.reload(force);

参数:

1.force 是否强制重新加载(从服务器重新加载,忽略本地缓存)。true 强制重新加载;false 重新加载。该参数可选,默认为 false

###replace()

加载新页面,并替换当前页面(不产生新的历史记录)。

语法:

location.assigh(url);

参数:

1.url 要加载的页面 URL

BOM介绍的更多相关文章

  1. BOM介绍以及方法

    BOM介绍和window对象的方法 一.BOM对象 (浏览器对象模型 BOM) 1.window alert() confirm() prompt() setInterval() ​ setTimeo ...

  2. Day047--JS BOM介绍, jQuery介绍和使用

    内容回顾 DOM 文档对象模型(model) 一个模型就是一个对象(属性和方法 面向对象的三大特性:封装 继承 多态) 为了可扩展性 DOM操作 标签属性操作 获取值 getAttribute() 设 ...

  3. BOM及DOM及事件

    知识内容: 1.BOM介绍 2.DOM操作 3.事件 参考:http://www.cnblogs.com/liwenzhou/p/8011504.html 入门代码(DOM基本操作与事件): < ...

  4. javascript bom操作

    BOM BOM介绍 全称 Browser Object Mode 浏览器对象模式 操作浏览器的API接口.比如浏览器自动滚动 Windows对象的顶层部分是BOM的顶层(核心)对象,所有的对象都是通过 ...

  5. JavaScript中BOM的重要内容总结

    一.BOM介绍 BOM(Browser Object Model),浏览器对象模型: 用来操作浏览器部分功能的API: BOM由一系列的对象构成,由于主要用于管理窗口和窗口之间的通讯,所以核心对象是w ...

  6. python-javascript之bom

    BOM BOM介绍 全称 Browser Object Mode 浏览器对象模式 操作浏览器的API接口.比如浏览器自动滚动 Windows对象的顶层部分是BOM的顶层(核心)对象,所有的对象都是通过 ...

  7. 关于JavaScript的DOM和BOM

    本文探讨JavaScript的三大部分中的两个部分,DOM和BOM. DOM介绍 DOM,全称Document Object Model,即文档对象模型.它 是W3C的一个标准,定义了一个对文档操作的 ...

  8. 前端学习 之 JavaScript DOM 与 BOM

    一. DOM介绍 1. 什么是DOM? DOM:文档对象模型.DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构. 目的其实就是为了能让js操作html元素而制定的一个规范. DOM就 ...

  9. Java 使用 Maven BOM 统一管理版本号

    一个中大型的 Java 项目往往包含若干 JAR 包,这些 JAR 包有着不同的版本号.如果这些 JAR 包单独发布,然后直接通过版本号引用相应的 JAR 包,不同版本的兼容性维护将变得十分麻烦.为了 ...

随机推荐

  1. C# 图片识别(支持21种语言) (转)

    图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇总一下(C#实现),方便需要的朋友查阅,也给自己做个记号. 图片识别的用途:很多人用它去破解网站的验证码,用于达到自动刷票或者是批量 ...

  2. [leetcode]Reverse Linked List II @ Python

    原题地址:https://oj.leetcode.com/problems/reverse-linked-list-ii/ 题意: Reverse a linked list from positio ...

  3. https://www.cnblogs.com/xubing-613/p/5895948.html

    最近总是需要用matplotlib绘制一些图,由于是新手,所以总是需要去翻书来找怎么用,即使刚用过的,也总是忘.所以,想写一个入门的教程,一方面帮助我自己熟悉这些函数,另一方面有比我还小白的新手可以借 ...

  4. 十个 Laravel 5 程序优化技巧

    性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能. 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论. 这里是简单的列表: 配 ...

  5. 不可不知的Python模块: collections

    原文:http://www.zlovezl.cn/articles/collections-in-python/ Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块.比如今天想 ...

  6. Redis实战总结-Redis的高可用性

    在之前的博客<Redis实战总结-配置.持久化.复制>给出了一种Redis主从复制机制,简单地实现了Redis高可用.然后,如果Master服务器宕机,会导致整个Redis瘫痪,这种方式的 ...

  7. [Git] Undo a commit that has already been pushed to the remote repository

    If we pushed our changes already to the remote repository we have to pay attention to not change the ...

  8. js获取当月最后一天

    构造函数 new Date(); new Date(value); new Date(dateString); new Date(year, month[, day[, hour[, minutes[ ...

  9. php代码收集

    thinkphp <?php class HekaAction extends BaseAction{ public function index(){ require_once './wang ...

  10. iOS界面篇 - bounds和frame的相同和区别

    相同点: 他们都是CGRect类型,且拥有属性origin(x, y),  size(weight, height) 不同点: bounds是你画的视图的边界,和父视图没有半毛钱关系 frames则一 ...