前端系列之JavaScript(BOM对象)

2023-11-09

什么是BOM?
BOM(browser object model)浏览器对象模型

这里写图片描述

window对象

这里写图片描述

全局对象

说明:所有的全局变量和全局方法都被归为window上

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
            var age=15;

            function sayAge(){
                alert('我'+window.age);
            }
            //声明一个全局变量
            window.username="marry";//var username="marry";
            //声明一个全局方法
            window.sayName=function(){
                alert("我是"+this.username);
            }
            sayAge();
            window.sayName();
        </script>
    </body>
</html>

alert-confirm-prompt

语法:window.alert(“content”);
功能:显示带有一段消息和一个确认按钮的警告框。

这里写图片描述

语法:window.confirm(“message”);
功能:显示一个带有指定消息和OK及取消按钮的对话框。
返回值:布尔型
如果用户点击确定按钮,则confirm()返回true
如果用户点击取消按钮,则confirm()返回false

这里写图片描述

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="box">
            <span>iphone6s</span>
            <input type="button" value="删除" id="btn" />
        </div>
        <script>    
            //confirm
            //获取按钮,绑定事件
            var btn =document.getElementById("btn");
            btn.onclick=function(){
                //弹出确认对话框
                var result=window.confirm("您确定要删除吗?该信息\n将不可恢复!");
                console.log(result);
                if(result){
                    document.getElementById("box").style.display="none";
                }
            }
        </script>
    </body>
</html>

语法:window.prompt(“text”,”defaultText”)
参数说明:
text:要在对话框中显示的纯文本(而不是HTML格式的文本)
defaultText:默认的输入文本
返回值:
如果用户点击提示框的取消按钮,则返回null
如果用户单击确认按钮,则返回输入字段当前显示的文本

这里写图片描述

open和close

语法:window.open(pageURL,name,parameters)
功能:打开一个新的浏览器窗口或查找一个已命名的窗口
参数说明:
pageURL:子窗口路径
name:子窗口句柄(name声明了新窗口的名称,方便后期通过name对子窗口进行引用)
parameters:窗口参数(各参数用逗号分隔)

语法:window.close()
功能:关闭浏览器窗口

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>open</title>
    </head>
    <body>
        <input type="button" value="退出" id="quit" />
        <script>
            window.onload=function(){
                //打开子窗口,显示newWindow.html
window.open("newWindow.html","newWindow","width=400,height=200,left=0,tap=0,toolbar=no,menubar=no,scrollbars=no,location=no,status=no");
            }
            var quit =document.getElementById("quit");
            //点击关闭当前窗口
            quit.onclick=function(){
                window.close();
            }
        </script>
    </body>
</html>

定时器setTimeout:超时调用

超时调用:
语法:setTimeout(code,millisec)
功能:在指定的毫秒数后调用函数或计算表达式

参数说明:
1、code:要调用的函数或要执行的JavaScript代码串
2、millisec:在执行代码前需等待的毫秒数

说明:setTimeout方法返回一个ID值,通过它取消超时调用

setTimeout()只执行code一次。如果要多次调用,可以让code自身再次调用setTimeout()

清除超时调用
语法:clearTimeout(id_of_settimeout)
功能:取消由setTimeout()方法设置的timeout
参数说明:
1、id_of_settimeout:由setTimeout()返回的ID值,该值标识要取消的延迟执行代码块

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
        <script>
            //          setTimeout("alert('hello')",4000 );

            var timeout1= setTimeout(function() {
                alert("hello")
            }, 4000);
            var fnCall = function() {
                alert("world");
            }
//          setTimeout(fnCall,6000);

            //取消setTimeout
            clearTimeout(timeout1);
        </script>
    </body>

</html>

定时器setInterval:间歇调用

语法:setInterval(code,millisec)
功能:每隔指定的时间执行一次代码
参数说明:
1、code:要调用的函数或要执行的代码串
2、millisec:周期性执行或调用code之间的时间间隔,以毫秒计

清除间歇调用
语法:clearInterval(id_of_setinterval)
功能:取消由setInterval()方法设置的interval
参数说明:
1、id_of_setinterval:由setInterval()返回的ID值,该值标识要取消的延迟执行代码块

<script>
    var intervalId= setInterval(function(){
        console.log("您好");
    },1000);

    //10秒之后停止打印
    setTimeout(function(){
        clearInterval(intervalId);
    },10000);
</script>

说明:JavaScropt是单线程语言,单线程就是所执行的代码必须按照顺序。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
//          var intervalId= setInterval(function(){
//              console.log("您好");
//          },1000);
//          
//          //10秒之后停止打印
//          setTimeout(function(){
//              clearInterval(intervalId);
//          },10000);
          var num=1,
          max=10,
          timer=null;//null-释放内存
          //每隔1秒钟num递增一次,直到num的值等于max清除
//        timer=setInterval(function(){
//         console.log(num);
//          num++;
//          if(num>max){
//              clearInterval(timer);
//          }
//        },1000);

         //使用超时调用实现
         function increamentNum(){
            console.log(num);
            num++;
            if(num<=max){
                setTimeout(increamentNum,1000);
            }else{
                clearTimeout(timer);
            }
         }
         timer=setTimeout(increamentNum,1000);
        </script>
    </body>
</html>

loaction对象

loaction对象提供了与当前窗口中加载的文档相关的信息,还提供了一些导航的功能,它既是window对象的属性,也是document对象的属性。

location对象的常用属性

功能:返回当前加载页面的完整URL
语法:loaction.href
说明:location.href与window.location.href等价

功能:返回URL中的hash(#号后跟零或多个字符),如果不包含则返回空字符串。
语法:location.hash

功能:返回服务器名称和端口号(如果有)
语法:location.host

功能:返回不带端口号的服务器名称
语法:location.hostname

功能:返回URL中的目录和(或)文件名
语法:location.pathname

功能:返回URL中指定的端口号,如果没有,返回空字符串
语法:location.port

功能:返回页面使用的协议
语法:location.protocol

功能:返回URL 的查询字符串,这个字符串以问号开头
语法:location.search

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .box1{
                height: 400px;
                background: #ccc;
            }
            .box2{
                height: 600px;
                background: #666;
            }
        </style>
    </head>
    <body>
        <div class="box1" id="top"></div>
        <div class="box2"></div>
        <input type="button" id="btn" value="返回顶部" />
        <script>
//          console.log(location.href);  //返回当前加载页面的完整URL
//          console.log(location.hash);  //返回URL中的hash(#号后跟零或多个字符),如果不包含则返回空字符串。多用于锚点
            var btn=document.getElementById("btn");
            btn.onclick=function(){
                location.hash="#top";
            }

            console.log(location.host);//返回服务器名称和端口号
            console.log(location.hostname);//返回不带端口号的服务器名称
            console.log(location.pathname);//返回URL中的目录和(或)文件名
            console.log(location.port); //返回URL中指定的端口号,如果没有,返回空字符串
            console.log(location.protocol);//返回页面使用的协议
            console.log(location.search);//返回URL    的查询字符串,这个字符串以问号开头
        </script>
    </body>
</html>

location对象方法

位置操作
改变浏览器位置的方法:
location.href属性
location对象其他属性也可以改变URL:
location.hash
location.search

location.reaplace():重新定向URL
说明:使用location.replace不会在历史记录中生成新记录

location.reload():重新加载当前显示的页面。
说明:
* location.reload()有可能从缓存中加载
* location.reload(true)从服务器重新加载

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <input type="button" value="刷新" id="reload" />
        <script>
//          setTimeout(function(){
                location.href="BOM4.html";//留下浏览记录
//              //window.location='BOM4.html'
//              location.replace("BOM4.html");
//          },2000);
            document.getElementById("reload").onclick=function(){
                location.reload(true);
            }

        </script>
    </body>
</html>

history对象

history对象保存了用户在浏览器中访问页面的历史记录。

History历史对象

功能:回到历史记录的上一步
语法:history.back()
说明:相当于使用history.go(-1)

功能:回到历史记录的下一步
语法:location.forward()
说明:相当于使用了history.go(1)

功能:回到历史记录的前n步
语法:history.go(-n)

功能:回到历史记录的后n步
语法:history.go(n)

screen对象

Screen对象包含有关客户端显示屏幕的信息

语法:screen.availWidth
功能:返回可用的屏幕宽度

语法:screen.availHeight
功能:返回可用的屏幕高度

—获取窗口文件显示区的高度和宽度,可以使用innerHeight和innerWidth

<body>
        <script>
            console.log("页面宽:"+screen.availWidth);
            console.log("页面高:"+screen.availHeight);

            console.log("pageWidth:"+window.innerWidth);
            console.log("pageHeight:"+window.innerHeight);
        </script>
</body>

Navigator对象的userAgent属性:用来识别浏览器名称,版本,引擎以及操作系统等信息的内容

var explorer = navigator.userAgent;
alert(explorer);

这里写图片描述

判断浏览器的类型

如何判断设备的终端是移动还是PC

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
            //检测浏览器类型
            function getBrowser(){
                //获取userAgent属性
                var explorer = navigator.userAgent.toLocaleLowerCase(),browser;
                //indexOf()方法返回某个指定的字符串值在字符串首次出现的位置,如果没有出现过,返回-1
                if(explorer.indexOf("msie")>-1){
                    browser="IE";
                }else if(explorer.indexOf("chrome")>-1){
                    browser="chrome";
                }else if(explorer.indexOf("opera")>-1){
                    browser="opera";
                }else if(explorer.indexOf("safari")>-1){
                    browser="safari";
                }
                return browser;
            }

            var explorer = getBrowser();
            console.log("您当前试用的是:"+explorer);
        </script>
    </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端系列之JavaScript(BOM对象) 的相关文章

随机推荐

  • 软件测试基础(三)代码检查与走查

    两种主要的人工测试方法 都是以一组人员为单位 用于代码检查的错误列表 1 数据引用错误 2 数据声明错误 3 运算错误 4 比较错误 5 控制流程错误 6 接口错误 7 输入输出错误 代码走查与检查
  • HTML5的魅力,10个Demo展示

    Flash和HTML5的比较已经成为现在最热门的主题之一 我们不去争论哪个好哪个不好 和HTML5在很酷的动画和简单的游戏等方面一样 除非HTML5在未来几年有一些重大发展 否则Flash在富内容网页应用和游戏方面永远是不错的选择 下面收集
  • [数据库] Navicat for MySQL触发器更新和插入操作

    一 触发器概念 触发器 trigger 监视某种情况 并触发某种操作 它是提供给程序员和数据分析员来保证数据完整性的一种方法 它是与表事件相关的特殊的存储过程 它的执行不是由程序调用 也不是手工启动 而是由事件来触发 例如当对一个表进行操作
  • 获取机器人turtlebot3 在gazebo 中仿真导航时的位姿真值

    背景 机器人在gazebo环境中仿真导航 除了实时获取传感器数据估计机器人位姿外 为了验证定位算法的精度 我们需要获得机器人在gazebo worlds下的真实位姿 方法一 在机器人模型的urdf文件或者sdf文件中加入一个ros plug
  • ruoyi+vue回显数字的问题,解决方案

    在项目中用ruoyi框架和前端vue进行开发 需求是在前端生成下拉框 下拉框中的内容需要调用后端接口进行数据返回 现在新增的时候 数据已经返回了 但是再修改的时候 进行回显数据导致前端列表中展示出来的数字 不是我们想要的 我们想要的是回显成
  • react学习笔记之三--State

    State概述 state可以理解成vue中的data 没学过vue也不要紧 就相当于设置一个页面的全局变量 设置的同时也要设置setter 这样就能实现更新state并重新渲染组件 定义的规则如下 const index setIndex
  • C/C++ 关于double和float两种类型的区别

    float 是单精度浮点数 内存占4个字节 有效数字8位 表示范围是 3 40E 38 3 40E 38 double 是双精度浮点数 内存占8个字节 有效数字16位 表示范是 1 79E 308 1 79E 308 include
  • YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析

    前言 前面简单介绍了YOLOv5的网络结构和创新点 直通车 YOLO系列 YOLOv5超详细解读 网络详解 在接下来我们会进入到YOLOv5更深一步的学习 首先从源码解读开始 因为我是纯小白 刚开始下载完源码时真的一脸懵 所以就先从最基础的
  • 高级实战案例:Python反反爬之JavaScript混淆

    写在前面 很早之前在吾爱破解论坛上看见了 猿人学 Web端爬虫攻防大赛 当时进入他们官网的时候 比赛已经结束了 看着那些题目还挺有意思的 但由于各种原因一直没有机会去做那些题目 最近比较闲 就去把猿人学官网打开看了一下 尝试着完成了第一道题
  • 输入框不能输入空格

    就酱 yourInputValue indexOf gt 0 复制代码 转载于 https juejin im post 5a39da775188256970782058
  • Jenkins+webhooks-多分支参数化构建-

    Jenkins webhooks 多分支参数化构建 需求 我这里是因为公司有个静态资源 构建完成是需要放在nginx的发布目录 但是每次手动构建不是很方便 我这里配置的是webhook更新代码触发自动构建 但是我们环境又分为正式环境跟测试环
  • 关于AF_INET和PF_INET

    AF 表示ADDRESS FAMILY 地址族 PF 表示PROTOCL FAMILY 协议族 Winsock2 h中 define AF INET 0 define PF INET AF INET 所以在windows中AF INET与P
  • Error in readRDS(dest) : error reading from connection

    Error in readRDS dest error reading from connection 解决办法 可能是镜像设置错误 导致无法抓取文件 修改 RStudio 中的镜像地址 设置成功后再运行成功 转载于 https www c
  • glip, glipv2介绍

    clip是使用 描述图片的句子 和 图片分类 作为一组输入来训练网络 glip是使用 描述图片的句子 和 图片检测任务 作为一组输入来训练网络 clip使用4亿对 glip使用27milliion 3M人工标定 24M网络爬 glipv2比
  • 菜刀连接图片一句话木马

    1 先制作图片一句话木马 找好一张图片如 fox jpg 并且准备好一句话脚本php文件fox php 在图片所在文件夹打开cmd命令行 执行命令 copy fox jpg b fox php a fox1 jpg 生成图片一句话文件fox
  • windows7 防火墙关于文件共享的设置

    WIN7自带防火墙的设置相较XP下有了较大的变化 近日在设置文件夹共享上遇到了一些小问题 后来解决了 过程如下 首先 在文件夹上右键 属性 共享 里 高级共享 共享此文件夹 然后给Everyone用户以读的权限 这一步和在XP下没什么区别
  • BigDecimal 前后端交互失去精度

    在Controller层通过 ResponseBody将返回数据自动转换成json时 不做任何处理 而直接传给前端的话 在BigDecimal长度大于17位 不包括小数点 会出现精度丢失 在Long长度大于17位时也会出现精度丢失的问题 解
  • C语言实现字典树

    leetcode 208的代码 include
  • 商用密码应用安全性评估测评过程指南_商用密码应用安全性评估的具体评估内容...

    如何合规 正确 有效使用商用密码 充分发挥商用密码在保障网络空间安全中的核心技术和基础支撑作用 关乎国家大局 关乎网络空间安全 关乎用户个人隐私 因此 要在保证商用密码应用大力推进和普及的同时 做好网络与信息系统的商用密码应用安全性评估 确
  • 前端系列之JavaScript(BOM对象)

    什么是BOM BOM browser object model 浏览器对象模型 window对象 全局对象 说明 所有的全局变量和全局方法都被归为window上