BOM(BrowserObjectModel)也叫浏览器对象模型,描述与浏览器进行交互的方法和接口。BOM由多个对象组成,
其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。
JavaScript由三部分组成:ECMAScript,BOM,DOM。BOM提供了很多对象,用于访问浏览器的功能。
下面介绍浏览器的三个公共对象:window对象,location对象,history对象。
window对象
BOM
的核心对象是window
,它表示浏览器的一个实例。在浏览器中,window 对象有双重角色,
它既是通过JavaScript 访问浏览器窗口的一个接口,又是ECMAScript 规定的Global 对象。这意味着
在网页中定义的任何一个对象
、变量
和函数
,都以window 作为其Global 对象
window对象的比较常用的知识点:全局作用域、窗口宽高、窗口位置、定时器的设置
获取窗口大小
通过以下代码可以跨浏览器获取页面视口大小
var pageWidth = window.innerWidth,pageHeight = window.innerHeight;
if(typeof pageWidth !="number"){if (document.compatMode == "CSS1Compat"){pageWidth = document.documentElement.clientWidth;pageHeight = document.documentElement.clientHeight;}else {pageWidth = document.body.clientWidth;pageHeight = document.body.clientHeight;}
}
location对象
location
是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能
以下是location
对象的属性列表.
-
hash
返回URL中的hash(#号后跟零或多个字符),如果URL中不包含散列,则返回空字符串,例"#contents" -
host
返回服务器名称和端口号(如果有).例"www.zhaosywz.com:80" -
hostname
返回不带端口号的服务器名称.例"www.zhaosywz.com" -
href
返回当前页面的完整url.例"www.zhaosywz.com/index.html" -
pathname
返回url中的目录或文件名,例"/category/shoes" -
port
返回url的端口号,如果没有则返回空字符串.例"8080" -
protocol
返回页面使用的协议。通常是http:或https: -
search
返回URL的查询字符串。这个字符串以问号开头,'?id=100
-
通过以下任何一种方式都会导致页面的跳转或重载
location.href = "http://www.baidu.com";
location.hash = "#section1";
location.search = "?q=javascript";
location.hostname = "www.yahoo.com";
location.pathname = "mydir";
location.port = 8080;
通过reload()
可以重新加载当前页面
location.reload(); //重新加载(有可能从缓存中加载)
location.reload(true);//重新加载(直接从服务器加载)
history对象
history 对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。
//后退一页
history.go(-1);//前进一页
history.go(1);//前进两页 history.go(2); //跳转到最近的包含'wrox.com'字符的页面 history.go("wrox.com"); //后退一页 history.back(); //前进一页 history.forward(); if (history.length == 0){ //这应该是用户打开窗口后的第一个页面 }
history对象是window对象的属性,它保存着用户上网的记录,从窗口被打开的那一刻算起