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 动态改变图片大小
Jun 11 Javascript
javascript 面向对象思想 附源码
Jul 07 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
Apr 10 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
May 21 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
Jun 07 Javascript
jQuery替换节点元素的操作方法
Mar 18 jQuery
node.js实现为PDF添加水印的示例代码
Dec 05 Javascript
小程序实现列表多个批量倒计时
Jan 29 Javascript
vue data引入本地图片的两种方式小结
Nov 13 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
vue实现选中效果
Oct 07 Javascript
原生js 实现表单验证功能
Feb 08 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生成WAP页面
2006/10/09 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
javascript 面向对象继承
2009/11/26 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
javascript的BOM
2016/05/03 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
详解Python中的四种队列
2018/05/21 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
python创建子类的方法分析
2019/11/28 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
Python实现自动签到脚本功能
2020/08/20 Python
python cookie反爬处理的实现
2020/11/01 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书