bom的总结1:window对象

作者: 我不是大熊 | 来源:发表于2018-01-13 19:53 被阅读6次

window对象

window对象是浏览器的一个实例,有双重角色:既是Javascript访问浏览器窗口的接口,又是ECMAScript的Global对象。

1.window对象的全局作用域
    在外部定义的对象,函数,属性都会成为window对象的属性
    var age = 20;
    console.log(window.age);
    function sayAge() {
        console.log('打印年龄:'+window.age);
    }
    window.sayAge();
    1.1 与直接添加在window的属性函数等等的区别是,它们不能通过delete删除
    console.log(delete(age));//非严格模式下返回false
    window.height = 180;
    console.log(delete(window.height));//返回true
    console.log(window.age);//一样存在
    console.log(window.height);//已被删除
    > 注意:ie8及以前使用delete删除window的属性的时候,都会抛出错误以示警告
2.窗口关系及框架

这部分日后再补充,可参考Javascript高级程序设计第三版P194

3.窗口位置
    var leftPos = (typeof window.screenLeft == "number")?window.screenLeft:window.screenX;
    var topPos = (typeof window.screenTop == "number")?window.screenTop:window.screenY;
    alert('距离左边:'+leftPos + '距离上边:'+topPos);
    有一些小问题,暂且忽略
    >注意:window.moveTo和window.moveBy方法一般都会被浏览器屏蔽掉.
4.窗口大小
      //获取窗口大小存在各种问题:如chrome获取到的是视口大小,如IE8及更早获取不到等等
      console.log('窗口大小:'+ window.outerWidth + '和' + window.outerHeight);
      //获取视口大小:
      var pageWidth = window.innerWidth,pageHeight = window.innerHeight;
      if (typeof pageWidth != "number"){
        if (document.compatMode == "CSS1Compat"){
            pageWidth = document.documentElement.clientWidth;
            pageHeight = document.documentElement.clientHeight;
        } else {
            pageWidth = document.body.clientWidth;
            pageHeight = document.body.clientHeight;
        }
      }
5.导航和打开窗口
    //打开窗口:没有则新建.参数说明:1:要打开的url,
    // 2.窗口目标,特殊的窗口名称:_blank,_self,_parent,_top
    // 3.一个特性字符串,
    // 4.一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值
    var otherWindow = window.open('http://piaoshu.org','otherWindow','height=400,width=400,left=100,top=100');
    console.log(otherWindow.opener);
    console.log(otherWindow.opener === window);//打印true
    otherWindow.resizeTo(600,600);
    console.log(otherWindow.closed);//打印false
    otherWindow.close();
    console.log(otherWindow.closed);//打印true
    //通常只指定第一个参数,等同于<a href="http://baidu.com" target='_blank'></a>
    window.open('http://baidu.com');
    //大多数浏览器都内置有弹出窗口屏蔽程序,或者装有相关工具
    //所以可以判断窗口是否被屏蔽
    var blocked = false;
    try {
        var wroxWin = window.open("http://www.wrox.com", "_blank");
        if (wroxWin == null){
            blocked = true;
        }
    } catch (ex){
        blocked = true;
    }
    if (blocked){
        alert('打开新窗口被屏蔽了,请开启');
    }
6.超时调用和间歇调用
    //超时调用注意:设定时间值到了不一定会立刻执行,因为js是单线程的解析器,所以一定时间内只能执行一段代码
    //如果时间到了,js任务队列是空的,就会立刻执行,否则就等待执行.
    var timeId = setTimeout(function () {
        console.log('超时调用');
    },1000);
    clearTimeout(timeId);//在执行之前调用就可以取消了
    //间歇调用注意:需要在特定条件下取消间歇调用,否则会一直在重复调用,直至页面卸载
    var count = 60, interval = null;
    var logFun = function () {
        console.log('每一秒调用一次我');
        console.log(count);
        count -= 1;
        if(count <= 50){
            clearInterval(interval);
        }
    };
    interval = setInterval(logFun,1000);
    //所以为了避免管理间歇调用的取消,,而且,后一个间歇调用可能会在前一个间歇调用结束之前启动(根据设定的间隔时间和代码执行时间来定),经常会使用超时调用来替代间歇调用:
    var num = 0,max = 10;
    var numFun = function () {
        console.log(num);
        num ++;
        //只要符合条件就继续超时调用,相当于间歇调用了
        if(num <= max){
            setTimeout(numFun,1000);
        }
    };
    setTimeout(numFun,1000);
7.系统对话框
    //系统对话框:代码会先停止执行,等对话框消失之后继续执行
    //1.alert:消息提醒
    alert('这是alert消息');
    //2.confirm:确认框,返回值true点击了确定,反之不是
    if(confirm('是否确定删除该邮件')){
        alert('点击确定');
    }else{
        alert('没有点击确定');
    }
    //3.prompt提示用户输入文本
    var result = prompt('请输入你的姓名','姓名');
    if(result != null){
        console.log('这里');
    }

相关文章

  • BOM对象

    BOM常用对象 1.BOM的常用对象: window navigator history location...

  • BOM简介

    BOM概述 1.什么是BOM 2.BOM的构成 window对象的常见事件 1.窗口加载时间 window.onl...

  • bom的总结1:window对象

    window对象 window对象是浏览器的一个实例,有双重角色:既是Javascript访问浏览器窗口的接口,又...

  • js bom

    1:什么是bom? 2:window对象是BOM的核心,也是BOM里面的顶级对象。 3: open('路径','...

  • JS BOM事件

    ★【知识点】: 1、掌握什么是BOM2、掌握BOM的核心-window对象3、掌握window对象的控制、弹出窗口...

  • BOM和DOM的区别

    BOM中的对象 window对像 是整个BOM的核心,所有对象和集合都以某种方式回到window对象,window...

  • JavaScript-BOM对象(Browser Object

    一.BOM对象(Browser Object Model) 二.Window对象 1.Window对象属性 2.W...

  • 第二周总结

    window对象 BOM BOM:window对象下面包含5个属性,navigator、location、docu...

  • BOM与DOM的区别

    BOM中的对象 Window对象: 是整个BOM的核心,所有对象和集合都以某种方式回接到window对象。...

  • JavaScript的基础组成部分

    JavaScript的基础组成部分 (1)BOM 内置对象总结: window的主要方法: 2、DOM DOM是一...

网友评论

    本文标题:bom的总结1:window对象

    本文链接:https://www.haomeiwen.com/subject/cnirnxtx.html