BOM基础
文章目录
window对象
window对象是BOM的核心对象,是浏览器的一个实例。window对象既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。
全局作用域
- 在全局作用域中声明的变量、函数会变成window对象的属性与方法。但全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以。
- 尝试访问未声明的变量会抛出错误,但通过查询window对象,可以知道某个可能未声明的变量是否存在
窗口关系及框架
如果页面中包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中
窗口位置
可以用下面的代码跨浏览器取得窗口左边和上边的位置
12var leftPos = (typeof window.screenLeft == "number")?window.screenLeft:window.screenX;var topPos = (typeof window.screenTop == "number")?window.screenTop:window.screenY;moveTo() 与 moveBy() 可以将窗口精确地移动到一个新位置。
窗口大小
- document.documentElement.clientWidth 和 document.documentElement.clientHeight 中保存可页面视口的信息
- resizeTo() 和 resizeBy() 方法可以调整浏览器窗口的大小。
导航和打开窗口
- window.open() 既可以导航到一个特定的URL,也可以打开一个新的浏览器窗口。window.close()用于关闭这样打开的窗口。
间歇调用和超时调用
- setTimeout() 与 setInterval() 都是window对象的方法。第一个参数 最好不传递字符串,因为传递字符串可能导致性能损失。
第二个参数是告诉js 再过多长时间把当前任务添加到队列中,若当前队列是空的,那么添加的代码会立即执行;如果队列不是空的,那就要等前面的代码执行完再执行,所以经过指定的时间代码不一定执行。 - setTimeout() 会返回一个数值ID,表示超时调用,这个超时调用ID是计划中代码的唯一表示符,可以用来取消超时调用。clearTimeout(id).
clearInterval()同样。 - 使用超时调用来模拟间歇调用是一种最佳的模式。在开发环境中很少使用真正的间歇调用,原因是后一个间歇调用可能会在前一个间歇调用结束之前调用。1234567891011var num =0;var max =10;function incrementNumber(){num++;if(num<max){setTimeout(incrementNumber,500);}else{alert("done");}}setTimeout(incrementNumber,500);
系统对话框
- alert() confirm() prompt(),这几个方法是同步的和模态的。prompt接收两个参数:要显示给用户的文本提示和文本输入域的默认值
location
location 提供了与当前窗口中加载的文档有关的信息。 location对象既是window对象的属性,也是document对象的属性,即 window.location 和 document.location 引用的是同一个对象。
- location 对象可通过 不同的属性 访问url的独立字段: hash host hostname href pathname port protocol search
- decodeURIComponent() 用于解码 字符串
- location对象可以用多种方式开改变浏览器的位置。 location.href 和location.assign();或者通过修改location的不同URL字段属性后,浏览器的历史记录中就会生成一条新纪录,可以单击”回退”按钮导航到前一个页面,要禁用这种行为,可以使用replace()方法。这个方法只接收一个参数,即要导航到的URL,结果虽然导致了浏览器位置改变,但不会再历史记录中生成新纪录。在调用replace()方法后,用户不能回到前一个页面。
- reload() : 用于重新加载当前显示的页面。reload()若页面自上次请求以来没有改变过,页面就会从浏览器缓存中重新加载,reload(true)为强制 从服务器中重新加载。
navigation
nvigation 对象可以用来检测插件和注册处理程序
screen
screen对象用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息。
history 对象
history 对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。使用go() 方法可以在用户的历史记录中任意跳转。history在创建自定义的“后退”和”前进”按钮及检测当前页面是不是用户历史记录中的第一个页面时使用。