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 window.confirm确认 取消对话框实现代码小结
Oct 21 Javascript
常见表单重复提交问题整理及解决方法
Nov 13 Javascript
JavaScript实现更改网页背景与字体颜色的方法
Feb 02 Javascript
jQuery实现自动调整字体大小的方法
Jun 15 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
Aug 07 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
Boostrap模态窗口的学习小结
Mar 28 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
vue.js+Element实现表格里的增删改查
Jan 18 Javascript
vue中英文切换实例代码
Jan 21 Javascript
js实现筛选功能
Nov 24 Javascript
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读取mysql的简单实例
2014/01/15 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
PHP实现百度人脸识别
2019/05/06 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
小程序实现选择题选择效果
2018/11/04 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
干部现实表现材料
2014/02/13 职场文书
监察建议书格式
2014/05/19 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
入党函调证明材料
2015/06/19 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
MySQL数据库 安全管理
2022/05/06 MySQL
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript