BOM

window对象   

  • 全局作用域

    1.在全局作用域中声明变量和函数都会变成window对象的属性和方法
        var age =29;
        window.age //29
    2.全局变量和在window对象上直接定义的属性差别

 delete访问未声明的变量 
window对象的属性/方法可以用delete删除
eg:window.color="red"
delete window.color; //除IE<9,其他返回true
注意:IE<9时,delete会抛出错误
可以访问,属性查询
eg:var newvalue=window.oldvalue;//undefined
 
全局变量 var  variables不可用delete删除
原因:[[Configurable]]特性为false(为什么
eg: var age=29;
delete window.age; //除IE<9,其他返回false
不可访问
eg:var newvalue=oldvalue;//会抛出错误
 

        3.注意:Windows Mobile的IE不能通过window.property=value去访问或创建


  • 窗口and框架(frame)

  • 窗口位置

!!跨浏览器获取窗口位置的方法!!

var leftPos = (typeof window.screenLeft == "number") ? window.screenLeft:window.screenX;
var topPos = (typeof window.screenTop == "number") ? window.screenTop:window.screenY;


IE    screenLeft/screenTop,保存屏幕左边/上边到由window对象表示的页面可见区域
Safari    screenLeft/screenTop,保存屏幕左边/上边到整个浏览器窗口的距离
Opera    screenLeft/screenTop,保存屏幕左边/上边到由window对象表示的页面可见区域
screenX/screenY也支持,但不对应,建议不要用
ChromescreenLeft/screenTop,保存屏幕左边/上边到整个浏览器窗口的距离
FirefoxscreenX/screenY,保存屏幕左边/上边到整个浏览器窗口的距离

moveTo(),moveBy()不建议使用(被浏览器禁用)

  • 窗口大小

!!跨浏览器获取页面适口大小的方法!!(浏览器窗口本身的大小难确定)

//var pageWidth = window.innerWidth;
//var pageHeight = window.innerHeight;
//if(typeof pageWidth != "number")
//{
  if(document.compatMode == "CSS1Compat" )
  {
     pageWidth = document.documentElement.clientWidth;
     pageHeight= document.documentElement.clientHeight;
  }
    //IE6的混杂模式
    else{
      pageWidth = document.body.clientWidth;
      pageHeight = document.body.clientHeight;
    }
//}

电脑
ChromeouterWidth/Height、innerWidth、document.documentElement.clientWidth都是视口大小  
FirefoxouterWidth:浏览器窗口本身大小innerWidth:容器页面视图区大小document.documentElement.clientWidth视口大小

Safari   

outerWidth:浏览器窗口本身大小innerWidth:容器页面视图区大小document.documentElement.clientWidth视口大小
OperaouterWidth:页面视图容器大小nnerWidth:容器页面视图区大小document.documentElement.clientWidth视口大小
IE9+outerWidth:浏览器窗口本身大小innerWidth:容器页面视图区大小document.documentElement.clientWidth视口大小
IE8-没有提供浏览器窗口尺寸的属性 

IE6标准模式:document.documentElement.clientWidth视口大小

IE6混杂模式:document.body.clientWidth视口大小

移动设备

比较复杂,详情请看移动开发咨询师Peter-Paul Koch的建议

resiezeTo(新宽,新高)

resizeBy(与原来的宽度差,与原来的高度差)

可能被浏览器禁用,IE7+和Opera禁用,框架不适用

导航和打开窗口

  • 弹出窗口

open(url,窗口目标,特性字符串,取代历史记录布尔值)

第四个参数在窗口目标为原来的窗口时才存在

如果窗口目标是新的窗口或框架,才需特性字符串,设置新窗口的各个属性

window.open("https://www.imooc.com/learn/10","baidu","height=400,width=400,top=10,left=10,resizabable=yes");

窗口对象.close():关闭用open()打开的窗口。

窗口对象.opener():与打开它或它打开的窗口之间的通信。


  • 安全限制
Chrome屏蔽弹出窗口,显示标题栏放在浏览器右下角  
Firefox不允许修改状态栏,强制在弹出窗口显示地址栏  

   
Opera主浏览器窗口中打开弹出窗口,不允许与系统对话框混淆  
    
   

  • 弹出窗口屏蔽程序

yahoo! Toolbar

浏览器内置屏蔽程序组织弹出窗口检测:

var wrowin = window.open("http://baidu.com","_blank");
if(wrowin.open==nulll){dosomething}

对其他程序,抛出错误

var blocked false;
try{
    var wrowin = window.open("http://baidu.com",_blank);
    if(wrowin==null){
        blocked = true;
    }
}
catch(ex){blocked = true;}
if(blocked){dosomething}


location对象
navigation对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值