浏览器中BOM(浏览器对象模型)重点掌握对象之Window对象的属性与方法(下)

简介: 接上文

关闭窗口


既然window对象有打开窗口的函数,那肯定少不了关闭窗口的函数,我们可以通过 window对象.close() 的方式,关闭一个窗口,大多数的浏览器只允许关闭由自己的js代码打开的窗口


    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><button class="btn1">打开新窗口</button><button class="btn2">关闭新打开的窗口</button><script>    let btn1 = document.querySelector('.btn1')    let btn2 = document.querySelector('.btn2')    btn1.onclick = function () {      //将新打开的窗口的window对象返回给变量new_window        new_window = window.open()    }    btn2.onclick = function () {      //调用新打开窗口的window对象的close()方法        new_window.close()    }</script></body></html>


    动画展示


    f42595486cbc2184100056c5e0aeec62.jpg

    对话框


    Window对象还提供了3个方法来向用户显示简单的对话框,他们分别是:alert()confirm()prompt()


    alert()


    该方法传入一个字符串作为参数。执行时,在浏览器弹出一个消息提醒框,字符串会作为内容显示在框内。


    执行了该方法以后,会阻碍后面的js代码的运行,只有等用户手动关闭了该弹框以后,后面的js代码才会继续执行。


    这个是Window对象的方法,可以这样调用window.alert(),同时我们也可以省略window,直接这样写alert()


      alert('第一次弹出弹框')window.alert('第二次弹出弹框')


      动画展示


      bd16599da663286ef7e7a1c65fe8b325.jpg


      confirm()


      该方法传入一个字符串作为参数。执行时,弹出一个消息框,字符串作为内容展示在框内,并且有 “确认” 和 “取消” 两个按钮,当点击 “确认” 时,返回true;当点击 “取消” 时,返回false。


      执行了该方法以后,会阻碍后面的js代码的运行,只有等用户点击了某个按钮以后,后面的js代码才会继续执行。


      调用该方法,window 可以省略,即可以这样调用 confirm()


        let ret1 = confirm('你确定吗?')console.log(ret1, 1)
        let ret2 = window.confirm('真的确定吗?')console.log(ret2, 2)


        动画展示


        b1f1846cb8cc9567142acfd68046017e.jpg


        prompt()


        该方法传入一个字符串作为参数。执行时,弹出一个框,字符串作为内容展示在框内,并且框内还有一个文本框,用户可以在文本框内输入内容。同时也有 “确定” 和 “取消” 两个按钮,若点 “确定”,则返回用户文本框内输入的字符串;若点 “取消”,则返回null


        执行了该方法以后,会阻碍后面的js代码的运行,只有等用户点击了某个按钮以后,后面的js代码才会继续执行。


        调用该方法,window 也可以省略,即可以这样调用 prompt()


          let ret1 = prompt('你是谁?')console.log(ret1, 1)
          let ret2 = window.prompt('你吃饭了吗?')console.log(ret2, 2)


          动画展示


          9f6a0abb57bdbc28e1da06b23c8a4aea.jpg


          其实除了这三种简单的对话框外,还有一种复杂的对话框,叫做模态对话框,调用方法为showModalDialog(),它的实质就是将另一个HTML文件作为弹框显示在页面中,因为比较复杂,用到的也不多,我就不多做讲解了,感兴趣的可以去网上自己看下文档。


          Window对象的属性


          要是说到Window对象的属性的话,那可就多了,我们先来讲一个常用的,例如opener ,该属性返回一个window对象,表示该窗口是由谁打开的。若不是被别的窗口打开,则返回null;若是被别的窗口打开,则返回那个窗口的window对象。刚刚我们上面将了window对象的open()方法,并且知道了open()方法会返回新打开窗口的window对象。接下来我们来看一下例子


            <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><button class="btn1">打开新窗口</button><button class="btn2">控制新打开的窗口</button><script>    let btn1 = document.querySelector('.btn1')    let btn2 = document.querySelector('.btn2')    let new_window = null    //弹出弹框,展示当前窗口的opener属性    alert(window.opener)    btn1.onclick = function () {        new_window = window.open()    }    btn2.onclick = function () {      //控制新窗口弹出弹框,判断新打开窗口的opener是否为当前窗口的window对象        new_window.alert(new_window.opener === window)    }</script></body></html>


            动画展示


            0dfeb96b14080e6d5449c7c956536d6d.jpg


            还有更多的window对象属性,其实都是通过调用了别的对象的属性来引用的,因为window对象表示的整个窗口,所以window对象是最大的一个对象,在他里面还有很多别的对象,我们可以通过window.别的浏览器内置对象来引用别的对象属性。举个例子先location.href就是调用了Location对象,同时我们也可以这样调用Location对象 window.location,这两者相等。


            感谢观看~

            相关文章
            |
            3月前
            |
            前端开发 JavaScript 开发者
            什么是浏览器对象的 preventDefault 方法
            什么是浏览器对象的 preventDefault 方法
            31 1
            |
            3月前
            |
            JavaScript 前端开发 UED
            浏览器对象模型 (BOM)
            浏览器对象模型(Browser Object Model,简称BOM)是JavaScript中用于操作浏览器窗口和与其相关对象的一种模型。BOM提供了一系列与浏览器窗口进行交互的对象,使得JavaScript可以对浏览器窗口进行控制和操作。其中最核心的对象是window对象,它代表了浏览器窗口本身。
            18 1
            |
            4月前
            |
            Web App开发 前端开发
            Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
            Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
            165 0
            |
            1月前
            |
            JavaScript
            【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
            【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
            |
            1月前
            |
            存储 JavaScript 前端开发
            在浏览器中存储数组和对象(js的问题)
            在浏览器中存储数组和对象(js的问题)
            12 0
            |
            4月前
            |
            JavaScript 前端开发 API
            探索前端BOM API:解锁浏览器的潜力
            探索前端BOM API:解锁浏览器的潜力
            51 0
            |
            5月前
            |
            Web App开发 移动开发 JavaScript
            【Vue版】实现拖拽、排序效果(注意,这个方法在chrome谷歌浏览器上面不适用,dragend会情不自禁触发drag事件先执行,有点像浏览器的一个bug)
            【Vue版】实现拖拽、排序效果(注意,这个方法在chrome谷歌浏览器上面不适用,dragend会情不自禁触发drag事件先执行,有点像浏览器的一个bug)
            |
            5月前
            |
            编解码 JavaScript 前端开发
            BOM和DOM:BOM(浏览器对象模型)提供了与浏览器交互的能力,如弹窗、定时器等;DOM(文档对象模型)提供了操作HTML元素的能力,如获取、修改元素内容和属性。
            BOM和DOM:BOM(浏览器对象模型)提供了与浏览器交互的能力,如弹窗、定时器等;DOM(文档对象模型)提供了操作HTML元素的能力,如获取、修改元素内容和属性。
            41 2
            |
            22天前
            |
            JavaScript
            浏览器插件crx文件--JS混淆与解密
            浏览器插件crx文件--JS混淆与解密
            21 0
            |
            1月前
            |
            JavaScript 前端开发 UED
            JS:如何获取浏览器窗口尺寸?
            JS:如何获取浏览器窗口尺寸?
            45 1