【八】BOM

一.window对象

   1.BOM的核心对象,表示浏览器的一个实例。既是通过js访问浏览器窗口的一个接口,又是ECMA规定的Global对象。

   2.全局作用域:所有在全局作用域中申明的变量函数都会变成window对象的属性和方法。但是定义全局变量和在window上直接定义属性还是有区别的:全局变量不能通过delete操作符删除,但是定义在window上的属性可以。另外,尝试访问未声明的变量会抛出错误,但是通过查询window对象能够知道某个未声明的变量是否存在。

   3.框架:如果页面包含框架,每个框架都有自己的window对象,保存在franes集合中,通过索引或者框架名访问。如window.frames[0]或window.frames["frameName"]。但最好使用top对象来引用这些框架,因为top对象指向最高最外层的框架,即浏览器窗口,如top.frames[0]。对应的另一个winodw对象是parent,始终指向当前框架的直接上层框架。最后一个self对象,始终指向window 。

   4.窗口位置:screenLeft和screenTop:表示窗口相对于屏幕左边和上边的位置(IE,SF,O,Chrome)screenX和screenY(firefox,SF,Chrome),opera虽然也支持screenX属性但是和screenLeft不对应。使用以下代码跨浏览器获取位置:

var left = (typeof window.screenLeft == "number") ? window.screenLeft : window.screenX;
<pre name="code" class="javascript">var top = (typeof window.screenTop == "number") ? window.screenTop : window.screenY;

 小问题:IE,Opera中screenTop和screenLeft保存的是屏幕左边上边到window对象表示的页面可见区域的的距离,即当浏览器紧贴屏幕上端时,screenTop为工具栏的像素高度。而chrome,firefox,sf中screenY或screenTop保存的是整个浏览器窗口相对于屏幕的坐标。 

   将窗口移动到一个新的位置:moveTo(),接受新位置的xy的坐标值作为两个参数,moveBy()接收水平和垂直方向上移动的像素数。

   5.窗口大小:四个属性innerHeight,innerWidth,outerWidth,outerHeight 

                       IE9+,SF,FF中:outer返回浏览器窗口本身尺寸大小;

                       Opera:outer返回页面视图容器大小即单个标签页对应的浏览器窗口,inner返回该容器页面视图区的大小。

                       Chrome:outer和inne返回视口大小。

     ducument.documentElement.clientWidth和document.documentElementHeight保存了页面视口的信息

     调整窗口大小:resizeTo()接收新宽度高度,resizeBy()接收新窗口与原窗口高度宽度之差

   6.打开新窗口:window.open()。

var newwin = window.open("http://www.baidu.com/");
newwin.resizeTo(500,500);
newwin.moveTo(100,100);
newwin.close();
   7.间歇调用和超时调用:

      超时调用:setTimeOut();超时调用:setInterval();  ->clearTimeOut() , clearInterval()

      注:取消间歇调用的重要性远高于取消超时调用,因为在不加干涉的情况下,间歇调用会一直执行到页面卸载。一般认为,使用超时调用来模拟间歇调用是一种最佳模式,在开发环境下很少使用真正的间歇调用,因为后一个间歇调用可能会在前一个间歇调用结束之前启动,而模拟则可以避免,所以最好不要使用间歇调用。

var num = 0;
var max = 10;
function incrementNumber() {
    num++;
    if(num < max) { setTimeout(incrementNumber, 500); }
    else { alert("done"); }
}
setTimeout(incrementNumber, 500);
   8.系统对话框:alert(),confirm(),prompt()。prompt包含文本域。

二.location对象

   最有用的BOM对象之一。location既是window对象的属性,也是document对象的属性。location不仅保存了当前文档的信息,还表现为它可以把url解析为独立的片段。

   属性:hash , host , hostname , href , pathname , port , protocol , search

   查询字符串参数:

   改变位置:location.assign(url) 、window.location = url 、location.href = url。location.replace(url) ->不会在历史记录中生成记录,不能回到前一个页面。另外修改location的其他属性也可以改变当前加载的页面。window.reload()重新加载当前页面。

三.navigator对象

   通常用于检测浏览器类型。

   检测插件:检测浏览器是否安装了特定插件,对非IE使用plugins数组,数组每一项包含下列属性:name插件名,description插件描述,filename插件文件名,length插件处理的MIME类型的数量。


四.screen对象

五.history对象

   是window对象的属性。history.go(-1)后退一页,history.go(1)前进一页


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值