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


            感谢观看~

            相关文章
            |
            5月前
            |
            存储 人工智能 前端开发
            前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
            本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
            342 14
            |
            5月前
            |
            XML 编解码 JavaScript
            DOM(文档对象模型)和 BOM(浏览器对象模型)
            【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
            446 62
            |
            7月前
            |
            存储 缓存 前端开发
            前端谷歌浏览器面版属性
            【8月更文挑战第19天】前端谷歌浏览器面版属性
            77 0
            |
            5月前
            |
            Web App开发 JavaScript 前端开发
            JavaScript Window - 浏览器对象模型
            JavaScript Window - 浏览器对象模型
            47 2
            |
            6月前
            |
            JavaScript 前端开发
            js之浏览器对象|28
            js之浏览器对象|28
            |
            5月前
            |
            算法 安全 前端开发
            基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
            基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
            165 0
            |
            7月前
            |
            机器学习/深度学习 存储 前端开发
            实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
            【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
            186 1
            |
            7月前
            |
            API UED 开发者
            如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
            【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
            117 0
            |
            4月前
            |
            JavaScript 前端开发 数据处理
            模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
            综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
            126 63
            |
            4月前
            |
            JSON 移动开发 JavaScript
            在浏览器执行js脚本的两种方式
            【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
            在浏览器执行js脚本的两种方式

            热门文章

            最新文章