JavaScript - BOM

JavaScript - BOM(浏览器对象模型)

  • window 对象( BOM的核心对象是浏览器的一个实例)
    • 全局作用域
var age = 29;
        function sayAge() {
            alert(this.age);
        }
        alert(window.age);
        sayAge();
        window.sayAge();
 - 在全局作用域中声明的全部局变量或者方法会被自动归到window对象的属性下,但是与直接在window对象下定义属性还是有差别的
var name = 29;
          window.color = 'red';
         delete window.name; //IE < 9 抛出错误,其他返回false
         delete window.color;  //IE < 9 抛出错误, 其他返回true
         alert(window.name);
         alert(window.color);
 - 窗口位置
     - IE, Safari, Opera, Chrome : screenLeft, screenTop,  Firefox: screenX, screenY
//跨浏览器取得窗口上边和左边的位置
function getBowerPosition() {
    var leftPos = (typeof window.screenLeft == "number") ? window.screenLeft : window.screenX;
    var topPos = (typeof  window.screenTop == "number") ? window.screenTop : window.screenY;
    alert("left = " + leftPos + ", top = " + topPos);
}
moveTo(x, y) :  接收新位置的x和y值坐标
moveBy(x, y) : 接收窗口在水平和垂直方向上平移的左边值
  • 窗口的大小
    IE, Safari, Opera, Chrome: innerHeight, innerWidt
    h, outerHeight, outerWidth, IE, Safari, Oper中outerWidth/outerHeight返回浏览器窗口本身的尺寸, Chrome: 四个都返回viewport(视口)大小
    标准模式下获取窗口大小: document.documentElement.clientWidth
    混杂模式下: document.body.clientWidth(ie6)
//跨浏览器获取视图的大小
getBowerSize();
function getBowerSize() {
    var pageWidth = window.innerWidth,
        pageHeight = window.innerHeight;
    if (typeof pageWidth != "number") {
        if (document.compatMode == "CSS1Compat") {
            pageWidth = document.documentElement.clientWidth;
            pageHeight = document.documentElement.clientWidth;
        } else {
            pageWidth = document.body.clientWidth;
            pageHeight = document.body.clientHeight;
        }
    }
    alert("pageWidth = " + pageWidth + ", pageHeight = " + pageHeight);
}

resizeTo(x, y): 新窗口的新高度和新宽度
resizeBy(x, y): 新窗口与原窗口的高度和宽度之差

  • 导航和打开新窗口:window.open()方法既可以打开一个新的窗口又可以导航到一个特定的url
//模拟浏览器下载
function downloadBower(downloadUrl) {
    window.open(downloadUrl, '_blank');
}
  • 间歇调用与延时调用:
    • 延时调用: 在延时指定的毫秒数之后执行指定的代码, 但可能代码不会立即执行,因为javascript是一个单线程, 在指定的毫秒数之后,会将延时后执行的函数体添加到js的任务队列,如果队列为空就会立即执行,但如果不是就会等待之前的任务队列执行完后才会执行
setTimeout(function () {
    //延时后执行的函数体
}, 10000);
//取消延时操作(在指定毫秒数之前调用会取消);
var timeoutId = setTimeout( function() {
    //函数体
}, 1000);
clearTimeout(timeoutId);
  • 间歇调用:setInterval
var intervalId = setInterval( function() {
    //函数体
}, 1000);
clearInterval(intervalId );
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值