zoukankan      html  css  js  c++  java
  • JS之BOM篇window窗口操作

    窗口即window对象,大多数浏览器都可以打开多个标签页,每个标签页都有自己的window对象

    以下只介绍所有浏览器都支持的window对象的属性和方法

    属性

    outerWidth、outerHeight

    outerWidth和outerHeight属性用于表示浏览器窗口本身的尺寸

    console.log(window.outerWidth)
    console.log(window.outerHeight)
    // chrome:     1280 800
    // firefox:    1280 800
    

    说明:Mac电脑的分辨率是1280*800,浏览器全屏模式下测试结果

    innerWidth、innerHeight

    innerWidth和innerHeight属性用于表示页面大小,实际上等于浏览器窗口尺寸大小减去浏览器自身边框及菜单栏、地址栏、状态栏等的宽度

    console.log(window.innerWidth) // 1280
    console.log(window.innerHeight) // 298
    

    注意: 由于<iframe>本身也有window属性,如果页面中存在框架,那么框架中的innerWidth和innerHeight属性指的是框架本身的innerWidth和innerHeight属性

    方法

    open()

    window.open()方法可以导航到一个特定的URL,也可以打开新的浏览器窗口。该方法接收四个参数:要加载的URL、窗口目标、一个特性字符串、一个布尔值

    【参数】

    1. 要加载的URL
    <button id="btn">按钮</button>
    <script>
      btn.onclick = function() {
        window.open('https://www.86886.wang')
      }
    </script>
    

    默认在新窗口打开

    1. 窗口目标

    窗口目标可以是_self、_parent、_top、_blank,也可以是已有窗口或者框架的名称

    <button id="btn">按钮</button>
    <script>
      btn.onclick = function() {
        window.open('https://www.86886.wang', '_self')
      }
    </script>
    
    1. 特性字符串

    特性字符串是一个逗号分隔的设置字符串,表示在新窗口中都显示哪些特性

    <button id="btn">按钮</button>
    <script>
      btn.onclick = function() {
        window.open('https://www.86886.wang', '_blank', ' 500,height: 500,top: 200,left: 0')
      }
    </script>
    
    1. 布尔值

    布尔值表示新页面是否取代浏览器历史记录中当前加载页面,默认值false,即创建一条新的记录。该参数只有在第二个参数命名的是一个存在的窗口时才有用

    【返回值】

    open()方法的返回值是新窗口的window对象

    <button id="btn">按钮</button>
    <script>
      btn.onclick = function() {
        var w = window.open();
        w.document.body.innerHTML = 'Hello'
      }
    // 新窗口的url显示结果:about:blank
    </script>
    

    新创建的window对象有一个opener属性,保存着打开它的原始窗口对象

    <button id="btn">按钮</button>
    <script>
      btn.onclick = function() {
        var w = window.open();
        console.log(w.opener === window); // true
      }
    </script>
    

    【过滤拦截】

    通常,open()方法只有当用户手动触发的时候才会调用。尝试在浏览器初始载入时开启一个弹出窗口时,通常会失败。如果被拦截,则返回值是null

    <script>
      var w = window.open();
      console.log(w); // null
    </script>
    

    close()

    window.close()方法用于关闭通过window.open()方法打开的新窗口

    <button id="btn">打开</button>
    <button id="btn2">关闭</button>
    <script>
      var w;
      btn.onclick = function() {
       w = window.open();
      }
      btn2.onclick = function() {
        if(w) { w.close() };
      }
    </script>
    

    新窗口的对象有一个closed属性,用于检测是否被关闭

    <button id="btn">打开</button>
    <button id="btn2">关闭</button>
    <script>
      var w;
      btn.onclick = function() {
       w = window.open();
       console.log(w.closed); // false
      }
      btn2.onclick = function() {
        if(w) { w.close() };
        console.log(w.closed); // true
      }
    </script>
    
    优秀文章首发于聚享小站,欢迎关注!
  • 相关阅读:
    集合的笼统介绍之Collection
    集合的笼统介绍之ArrayList
    final关键字+static关键字+匿名对象
    多态
    练习018:搜索插入位置
    练习017:实现strStr()
    练习016:移除元素
    练习015:删除排序数组中的重复项
    练习014:合并两个有序链表
    用JS实现链表
  • 原文地址:https://www.cnblogs.com/yesyes/p/15352584.html
Copyright © 2011-2022 走看看