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 相关文章推荐
jQuery 解析xml文件
Aug 09 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
Apr 08 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
JS 跳转页面延迟2种方法
Mar 29 Javascript
通过onmouseover选项卡实现img图片的变化
Feb 12 Javascript
单元选择合并变色示例代码
May 26 Javascript
js星星评分效果
Jul 24 Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 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的一些简单的操作
2015/02/26 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
js function使用心得
2010/05/10 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
Python实现简单的代理服务器
2015/07/25 Python
python实现一个简单的ping工具方法
2019/01/31 Python
Python实战之制作天气查询软件
2019/05/14 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
Python类型转换的魔术方法详解
2020/12/23 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
工业自动化毕业生自荐信范文
2014/01/04 职场文书
图书室管理制度
2014/01/19 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
班级读书活动总结
2014/06/30 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
护林员个人总结
2015/03/04 职场文书
导师鉴定意见
2015/06/05 职场文书
永远是春天观后感
2015/06/12 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
python中urllib包的网络请求教程
2022/04/19 Python