BOM的核心对象是window,表示浏览器的一个实例。

使用框架时,window.top对象指顶层框架,也就是浏览器窗口。window.parent对象指包含当前窗口的框架,也就是父框架。window.self指的是当前window窗口。

窗口位置

用来确定和修改window对象位置的属性。如下面代码:

var leftPos = (typeof window.screenLeft == 'number') ? window.screenLeft : window.screenX;

var topPos = (typeof window.screenTop == 'number') ? window.screenTop : window.screenY;

screeLeft/screenTop表示从屏幕左边或上边距离window对象所表示的页面的距离。(IE,chrome,Opera,Safari)

screenX/screenY表示浏览器窗口相对于屏幕的坐标。(适用火狐)

窗口大小

innerWidth,innerHeight,outerWidth,outerHeight:四个属性表示浏览器窗口的大小,Firefox,Chrome,Opera,Safari适用。

document.documentElement.clientWidth,document.documentElement.clientHeight或者document.body.clientWidth,document.body.clientHeight:保存页面的视口信息。

相关方法

window.open():新开窗口

window.setTimeout(funcName,1000):超时调用,只执行一次

window.clearTimeout(timeoutID):清除超时调用ID

window.setInterval(funcName,1000):间歇调用,每隔一段时间执行一次。

window.clearInterval(intervalId):清除间歇调用ID

使用超时调用来模拟间歇调用是一种最优的模式,原因是间歇调用可能会出现后一个间歇调用在前一个间歇调用未结束前就启动。

alert(),confirm(),prompt()调用系统对话框向用户显示信息

window.find()   //显示“查找”对话框

window.print()    //显示“打印”对话框

location对象

location对象即是window对象的属性,也是document对象的属性。提供了当前浏览器的导航信息。其中修改页面的url:

location.assign('http://www.baidu.com');

locaiton.href = 'http://www.baidu.com';

window.location = 'http://www.baidu.com';

以上方法都是立即打开新的URL并在浏览器的历史记录中生成一条新的记录,通过浏览器的后退按钮都能导航到前一个页面。

location.replace('http://www.baidu.com');  //replace方法接收一个参数,即要导航到的url,使用这个方法不会在浏览器中生成历史记录,无法通过后退按钮返回之前的页面。

location.reload();  //reload方法表示重新加载当前页面,不传参数表示可能从缓存中加载当前页面。

location.reload(true);    //强制从服务器端重新加载当前页面

navigator对象

navigator对象表示与浏览器相关的对象。比较常用的是navigator.userAgent属性监测浏览器的版本信息。

screen对象

screen对象表示浏览器窗口的外部显示器信息。这个对象比较少用。screen.availWidth,screen.availHeight指屏幕的像素宽高。

history对象

window对象中的history对象指用户的浏览器历史记录,虽然无法知道实际的url,但是有以下方法可以实现浏览器的前进后退功能。

history.go(-1)   //后退一页

history.go(1)    //前进一页

history.back()    //后退一页

history.forward()   //前进一页

history.go('baidu.com')    //跳转到历史记录中包含'baidu.com'字符串的链接的第一个位置,如果没有则什么都不做

history.length   指历史记录的个数。如果为0指当前页面是打开窗口的第一个页面

总结自:《javascript 高级程序设计》

JS 之BOM的更多相关文章

  1. JavaScript基础16——js的BOM对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. JS的BOM操作语法

    整理了一下JS的BOM操作语法,这里记录一下. <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...

  3. js,bom,dom(相信我,你看不懂我写的)

    js dom bom 2种结合方式: 1.在body中加入script标签,<script type="text/javascript" >alert(" 向 ...

  4. JS之BOM、客户端检测和DOM

    这是第八章到第十二章的内容,粗略浏览过一遍. 一.BOM 浏览器对象模型.包括了window.location.navigator.screen和history对象. window:核心对象 1.JS ...

  5. js操作bom和dom

    Bom 概念 BOM : Browser Object Model 浏览器对象模型,描述与浏览器进行交互的方法和接 口, ECMAscript是javascript的核心,但如果要在web中使用jav ...

  6. js中BOM与DOM的概念与区别

    1.BOM 浏览器对象模型 提供了独立于内容而与浏览器窗口进行交互的对象.描述了与浏览器进行交互的方法和接口,可以对浏览器窗口进行访问和操作,譬如可以弹出新的窗口,改变状态栏中的文本,对Cookie的 ...

  7. js对象(BOM部分/DOM部分)

    JS总体包括ECMAScript,DOM,BOM三个部分,但是能够和浏览器进行交互的只有DOM和BOM,那么到底什么是DOM和BOM呢 概念 BOM(Browser Object Model)是指浏览 ...

  8. JS浏览器BOM

    浏览器对象模型 (BOM)  BOM的核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象.这意味着在网页中定义的任何对象,变 ...

  9. JS之BOM和DOM(来源、方法、内容、应用)

    1.Javascript组成(此文为转载) JavaScript的实现包括以下3个部分: 1)核心(ECMAScript):描述了JS的语法和基本对象. 2)文档对象模型 (DOM):处理网页内容的方 ...

  10. 实用JS系列——BOM常用对象

    背景:  最近在着手项目的时候,意识到自己JS的欠缺.虽然看了不少JavaScript的视频,但真正项目中并不是经常遇到大且难的例子.所以JavaScript的基础还需要再打扎实,也就有了这一系列博客 ...

随机推荐

  1. img 在层内 居中显示

    div{width:250px;height:150px;background:#000;position:relative;} img{;;;;margin: auto;} <div>& ...

  2. UI交互设计的网站

    1.http://www.xueui.cn/other-tutorials/ui-interaction-design.html 2.http://www.3lian.com/edu/2015/12- ...

  3. iOS之github第三方框架(持续更新)

    1.MBProgressHUD MBProgressHUD是一个开源项目,实现了很多种样式的提示框 使用上简单.方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到. 到Github ...

  4. JSON取值前判断

    public static void main(String[] args)throws Exception{ String jsonStr1="{\"access_token\& ...

  5. python sorted

    python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等. sorted函数用法如下: sorted(data, cmp=None, key ...

  6. Effective Java 11 Override clone judiciously

    Principles If you override the clone method in a nonfinal class, you should return an object obtaine ...

  7. 如何延长windows评估版的方法

    在软件的开发测试,通常使用的是windows评估版本.但是有时候它的使用期限不满足你的需求.所以你可以用一下方法来延长评估版的时间. 延長使用期限 跟 Windows Server 2008 延長使用 ...

  8. MFC 网络编程 -- 总结

    原文链接:http://www.cnblogs.com/lidabo/archive/2012/07/19/2598734.html 1.基于 TCP 的 socket 编程 /* 服务器端程序流程: ...

  9. ASP.NET5 MVC6入门教学之一(自己动手)

    等待微软开源大动作已经好几年了,终于ASP.NET 5发布了.今天给新手们写一个简单地教程,教你认识一下ASP.NET5 MVC6 1.安装kvm 首先,你需要以管理员权限打开cmd,执行如下的脚本: ...

  10. [转载]UEditor报错TypeError: me.body is undefined

    本文转载来自:UEditor报错TypeError: me.body is undefined 今天在使用UEditor的setContent的时候报错,报错代码如下 TypeError: me.bo ...