浏览器中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,这两者相等。


            感谢观看~

            相关文章
            |
            6月前
            |
            存储 人工智能 前端开发
            前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
            本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
            490 14
            |
            8天前
            |
            数据采集 JavaScript 前端开发
            浏览器自动化检测对抗:修改navigator.webdriver属性的底层实现
            本文介绍了如何构建一个反检测爬虫以爬取Amazon商品信息。通过使用`undetected-chromedriver`规避自动化检测,修改`navigator.webdriver`属性隐藏痕迹,并结合代理、Cookie和User-Agent技术,实现稳定的数据采集。代码包含浏览器配置、无痕设置、关键词搜索及数据提取等功能,同时提供常见问题解决方法,助你高效应对反爬策略。
            |
            6月前
            |
            XML 编解码 JavaScript
            DOM(文档对象模型)和 BOM(浏览器对象模型)
            【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
            805 62
            |
            6月前
            |
            Web App开发 JavaScript 前端开发
            JavaScript Window - 浏览器对象模型
            JavaScript Window - 浏览器对象模型
            65 2
            |
            7月前
            |
            JavaScript 前端开发
            js之浏览器对象|28
            js之浏览器对象|28
            |
            6月前
            |
            算法 安全 前端开发
            基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
            基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
            203 0
            |
            5月前
            |
            JavaScript 前端开发 数据处理
            模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
            综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
            139 63
            |
            5月前
            |
            算法 开发者
            Moment.js库是如何处理不同浏览器的时间戳格式差异的?
            总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
            175 57
            |
            5月前
            |
            JSON 移动开发 JavaScript
            在浏览器执行js脚本的两种方式
            【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
            102 5
            在浏览器执行js脚本的两种方式
            |
            5月前
            |
            机器学习/深度学习 自然语言处理 前端开发
            前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
            本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
            893 1

            热门文章

            最新文章