BOM
BOM提供了很多对象,用于访问浏览器的功能。
window对象
BOM的核心对象是window,他表示浏览器的一个实例,它既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAscript规定的Global对象。意味着在网页上定义的任何一个对象、变量和函数,都以window作为其Global对象。
全局作用域
在全局作用域中声明的变量、函数都会变成window对象的属性和方法
尝试访问未声明的变量会抛出错误,但是用window对象可以知道摸一个未声明的变量是否存在
比如: var a=window.b(b未声明)
窗口位置
跨浏览器取得窗口左边和上边的位置。
导航和打开窗口
使用window.open()方法可以导航到一个特定的URL,也可以打开一个新的浏览器窗口。他可以接受4个参数,要加载的URL、窗口目标、一个特性字符串和一个新页面是否取代浏览器历史记录。
特性字符串:主要是设置窗口的一些属性。比如窗口的大小,位置,窗口显示工具栏等等,不允许出现空格
close():关闭新窗口,仅适用于用windo.open方法打开的窗口
新创建的window对象都有一个opener属性,他保存着打开他的原始窗口的对象。如果不希望新的窗口与之前的窗口保持通信,只需要 opener=null
弹出窗口屏蔽程序
大多数浏览器内置有弹出窗口屏蔽程序。
如果是内置屏蔽程序屏蔽屏蔽掉的,则window.open返回的是null,其他插件屏蔽掉的返回的是异常错误。
var a=window.open(xxxx);
if( a==null){ } 即可。
用try,catch来检查是不是插件搞的鬼。
超时调用
setTimeout与clearTimeout
执行setTImeout方法之后,会返回一个ID,表示计时器,可以用这个id来关闭计时器。
setTimeout方法只执行一次。
clearTimeout()则是关闭计时器。
setInterval和clearInterval
setInterval每隔一段时间执行一次,可以执行多次
系统对话框
通过alert、confirm和prompt方法调用系统对话框。他与浏览器中显示的网页没有关系。
confirm():会跳出一段文本,而且有确定和取消按钮
点击确定返回的事件与取消
prompt():他是一个提示框,用于提示用户输入一些文本,除了ok和cancel之外,还有一个输入的文本域
location对象(位置)
他是一个特别的对象,既是window对象,又是document对象
location.href:加载一个页面
location.port:返回端口号
location.host:返回服务器名称和端口号
location.protocol:返回页面使用的协议,通常是http或https
location.reload:重新加载
还有很多方法。每次修改location属性,页面都会以新的URL重新加载(hash除外)
screen对象
主要是显示器的一些信息,比如屏幕宽度、高度、像素这些,这个对象用的不多。
history对象
history对象保存着用户上网的历史记录。
history.go(x):当x为负数时,浏览器后退x,x为正数时,x前进x,还可以传入字符串,此时浏览器会跳转到历史记录中包含该字符串的第一个位置。
还可以用back()和forward(),后退与前进一个。相当于go(-1)和go(1)
他还有个length属性,表示保存的历史记录的数量。