JavaScript 浏览器对象模型BOM原理与常见用法实例分析


Posted in Javascript onDecember 16, 2019

本文实例讲述了JavaScript 浏览器对象模型BOM原理与常见用法。分享给大家供大家参考,具体如下:

什么是BOM

BOM:Browser Object Model,浏览器对象模型

JavaScript 浏览器对象模型BOM原理与常见用法实例分析

从上图也可以看出:

  • window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。
  • DOM是BOM的一部分。

window对象:

  • window对象是JavaScript中的顶级对象。
  • 全局变量、自定义函数也是window对象的属性和方法。
  • window对象下的属性和方法调用时,可以省略window。

弹出系统对话框

比如说,alert(1)是window.alert(1)的简写,因为它是window的子方法。

系统对话框有三种:

alert(); //不同浏览器中的外观是不一样的
confirm(); //兼容不好
prompt(); //不推荐使用

打开窗口、关闭窗口

打开窗口

window.open(url,target)

参数解释:

  • url:要打开的地址。
  • target:新窗口的位置。可以是:_blank 、_self、 _parent 父框架。
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
 </head>
 <body>
  <!--行间的js中的open() window不能省略-->
  <button onclick="window.open('https://www.luffycity.com/')">路飞学城</button>
  <button>打开百度</button>
  <button onclick="window.close()">关闭</button>
  <button>关闭</button>
 </body>
 <script type="text/javascript">
  var oBtn = document.getElementsByTagName('button')[1];
  var closeBtn = document.getElementsByTagName('button')[3];
  oBtn.onclick = function(){
      //open('https://www.baidu.com')
   //打开空白页面
   open('about:blank',"_self")
  }
  closeBtn.onclick = function(){
   if(confirm("是否关闭?")){
    close();
   }
  }
 </script>
</html>
<body>
<!--BOM使用的是window.开头的语句-->
<!--history模式和 hash模式-->
<!--history模式: xxxx/#/index.html-->
<!--hash模式:xxxx/index.html-->
<button id="btn">跳转</button>
<script>
 var oBtn=document.getElementById('btn');
 oBtn.onclick=function(){
  console.log(location);
  //打开百度,下面三种方式皆可
  // location.href='http://www.baidu.com';
  // open('http://www.baidu.com','_self');
  window.open('http://www.baidu.com','_self');//在当前页面打开
  window.location.reload();//刷新或者叫重载
 }
</script>
</body>

location对象

window.location可以简写成location。location相当于浏览器地址栏,可以将url解析成独立的片段。

location对象的属性

  • href:跳转
  • hash 返回url中#后面的内容,包含#
  • host 主机名,包括端口
  • hostname 主机名
  • pathname url中的路径部分
  • protocol 协议 一般是http、https
  • search 查询字符串

举例:5秒后自动跳转到百度。

有时候,当我们访问一个不存在的网页时,会提示5秒后自动跳转到指定页面,此时就可以用到location

<script>
 setTimeout(function () {
  location.href = "http://www.baidu.com";
 }, 5000);
</script>

location.reload():重新加载,这个加载是  全局刷新,让整个文档重新解析了一遍,一般不建议使用

setTimeout(function(){
   //3秒之后让网页整个刷新
 window.location.reload();  
},3000)

navigator对象

window.navigator 的一些属性可以获取客户端的一些信息。

  • userAgent:系统,浏览器)
  • platform:浏览器支持的系统,win/mac/linux
console.log(navigator.userAgent);
console.log(navigator.platform);

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
原生javascript实现的分页插件pagenav
Aug 28 Javascript
JS实现弹性菜单效果代码
Sep 07 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
基于jQuery实现页面搜索功能
Mar 26 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
浅谈vue的踩坑路
Aug 31 Javascript
Django使用多数据库的方法
Sep 06 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
JS中min函数实例讲解
Feb 18 Javascript
JavaScript中如何调用Java方法
Sep 16 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
javascript自定义右键菜单插件
Dec 16 #Javascript
js中的面向对象之对象常见创建方法详解
Dec 16 #Javascript
js实现数字滚动特效
Dec 16 #Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 #Javascript
js实现内置计时器
Dec 16 #Javascript
js实现秒表计时器
Dec 16 #Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 #Javascript
You might like
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
php给图片加文字水印
2015/07/31 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
python如何定义带参数的装饰器
2018/03/20 Python
分分钟入门python语言
2018/03/20 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python得到windows自启动列表的方法
2018/10/14 Python
python 实现倒排索引的方法
2018/12/25 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
早会开场白台词大全
2015/06/01 职场文书
心灵捕手观后感
2015/06/02 职场文书
父母教会我观后感
2015/06/17 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
选购到合适的激光打印机
2022/04/21 数码科技
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server