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 相关文章推荐
浅析Cookie中的Path与domain
Dec 18 Javascript
javascript 获取函数形参个数
Jul 31 Javascript
JS对象与json字符串格式转换实例
Oct 28 Javascript
基于JS实现简单的样式切换效果代码
Sep 04 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
Oct 16 Javascript
JS+CSS实现DIV层的展开、收缩效果
Jan 28 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
解决VUEX刷新的时候出现数据消失
Jul 03 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
微信小程序实现图片放大预览功能
Oct 22 Javascript
教你完全理解ReentrantLock重入锁
Jun 03 Javascript
用Vue.js方法创建模板并使用多个模板合成
Jun 28 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
php中__toString()方法用法示例
2016/12/07 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
浅谈Angular单元测试总结
2019/03/22 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python统计日志ip访问数的方法
2015/07/06 Python
基于python实现微信模板消息
2015/12/21 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
python实现加密的方式总结
2020/01/19 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
Python tkinter实现日期选择器
2021/02/22 Python
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
优秀团干部个人事迹
2014/05/29 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
大学生暑假实习总结
2015/07/13 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书