web前端学习(四十三)——JavaScript BOM简介、BOM-Window对象实例

简介: web前端学习(四十三)——JavaScript BOM简介、BOM-Window对象实例

1.JS BOM简介(浏览器对象模型)


浏览器对象模型(Browser Object Model (BOM))尚无正式标准。

由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。

Window对象表示浏览器中打开的窗口。

所有浏览器都支持 window 对象。它表示浏览器窗口。所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

全局变量 window 对象的属性。全局函数是 window 对象的方法。

甚至 HTML DOM document 也是 window 对象的属性之一:

window.document.getElementById("header");

与此相同:

document.getElementById("header");

1.1 实例:显示浏览器的宽度和高度

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>JS简单学习</title>
  </head>
  <body>
    <p id="demo"></p>
    <script type="text/javascript">
      var w=window.innerWidth
      || document.documentElement.clientWidth
      || document.body.clientWidth;
      var h=window.innerHeight
      || document.documentElement.clientHeight
      || document.body.clientHeight;
      x=document.getElementById("demo");
      x.innerHTML="浏览器window宽度: " + w + ", 高度: " + h + "。";
    </script>
  </body>
</html>


2.Window对象实例


2.1 Window对象属性

2.2 Window对象方法

2.3 实例一:显示带有一段消息以及确认按钮和取消按钮的对话框

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <p>点击按钮,显示确认框。</p>
    <button type="button" onclick="myFunction()">点我</button>
    <p id="demo"></p>
    <script type="text/javascript">
      function myFunction() {
        var x;
        var r=confirm("按下按钮!");
        if(r==true) {
          x="你按下了\"确定\"按钮!";
        }else {
          x="你按下了\"取消\"按钮!";
        }
        document.getElementById("demo").innerHTML=x;
      }
    </script>
  </body>
</html>

2.4 实例二:显示可提示用户输入的对话框

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <p>点击按钮查看输入的对话框。</p>
    <button type="button" onclick="myFunction()">点我</button>
    <p id="demo"></p>
    <script>
      function myFunction() {
        var x;
        var person=prompt("请输入你的名字","JS BOM");
        if(person!=null && person!="") {
          x="你好 " + person + "! 今天感觉如何?";
          document.getElementById("demo").innerHTML=x;
        }
      }
    </script>
  </body>
</html>

2.5 实例三:打开一个新的浏览器窗口或查找一个已命名的窗口

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <form>
      <input type="button" value="打开新窗口" onclick="openWindow()"/>
    </form>
    <script type="text/javascript">
      function openWindow() {
        window.open("https://www.baidu.com");
        //可以打开多个窗口
        //window.open("https://www.tencent.com");
        //可以控制打开窗口的外观
        //window.open("https://www.baidu.com","_blank","toolbar=yes,location=yes,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=no,copyhistory=yes,width=400,height=400");
      }
    </script>
  </body>
</html>

2.6 实例四:把键盘焦点给予一个窗口

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <input type="button" value="打开新窗口" onclick="openWindow()" />
    <input type="button" value="关闭新窗口" onclick="closeWindow()" />
    <script type="text/javascript">
      function openWindow() {
        myWindow=window.open("","","width=200,height=100");
        myWindow.document.write("<p>这是我的窗口。</p>");
        myWindow.focus();
      }
      function closeWindow() {
        myWindow.close();
      }
    </script>
  </body>
</html>

2.7 实例五:检查新窗口是否关闭

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
  </head>
  <body>
    <input type="button" value="打开新窗口" onclick="openWindow()" />
    <input type="button" value="关闭新窗口" onclick="closeWindow()" />
    <br /><br />
    <input type="button" value="该窗口被关闭了吗?" onclick="checkWindow()" />
    <br />
    <div id="demo"></div>
    <script type="text/javascript">
      var myWindow;
      function openWindow() {
        myWindow=window.open("","","width=400,height=200");
      }
      function closeWindow() {
        if(myWindow) {
          myWindow.close();
        }
      }
      function checkWindow() {
        if(!myWindow) {
          document.getElementById("demo").innerHTML="我的窗口没有被打开!";
        }else {
          if(myWindow.closed) {
            document.getElementById("demo").innerHTML="我的窗口被关闭!";
          }else {
            document.getElementById("demo").innerHTML="我的窗口没有被关闭!";
          }
        }
      }
    </script>
  </body>
</html>

2.8 实例六:用setTimeout() clearTimeout() 设置和停止定时器

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>JS简单学习</title>
    <script type="text/javascript">
      var c=0;
      var t;
      var time_is_on=false;
      function timesCount() {
        document.getElementById("txt").value=c;
        c=c+1;
        t=setTimeout(function() {timesCount()},1000);
      }
      function startTime() {
        if(!time_is_on) {
          time_is_on=true;
          timesCount();
        }
      }
      function stopTime() {
        clearTimeout(t);
        time_is_on=false;
      }
    </script>
  </head>
  <body>
    <form>
      <input type="button" value="开始计数!" onclick="startTime()"/>
      <input type="text" id="txt" />
      <input type="button" value="停止计数!" onclick="stopTime()"/>
    </form>
    <p>
      单击开始计数按钮,按下时开始计数,输入框将从0开始一直计数。单击停止计数按钮,按下时停止计数,再次点击开始计数按钮,又再次开始计数。
    </p>
  </body>
</html>

写在结尾:由于JS BOMWindow对象的实例有很多,在这里只是举几个简单的例子,大家可以自行使用Window对象中的方法、属性来应用学习。

目录
打赏
0
0
0
0
86
分享
相关文章
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
137 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
363 23
阿里云热门云安全产品简介:Web应用防火墙与云防火墙产品各自作用介绍
在阿里云的安全类云产品中,Web应用防火墙与云防火墙是用户比较关注的两款安全产品,二者在作用上各有侧重,共同构成了阿里云强大的安全防护体系。本文将对Web应用防火墙与云防火墙产品各自的主要作用进行详细介绍。
|
2月前
|
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
68 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
前端中对象的深度应用与最佳实践
前端对象应用涉及在网页开发中使用JavaScript等技术创建和操作对象,以实现动态交互效果。通过定义属性和方法,对象可以封装数据和功能,提升代码的组织性和复用性,是现代Web开发的核心技术之一。
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
161 2
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
68 1
JavaScript中的原型 保姆级文章一文搞懂
|
5月前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
44 0
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
238 5
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等