一. 什么是BOM:

  • BOM学名: Browser Object Model 翻译为 浏览器 对象 模型。 其实就是专门操作浏览器窗口的一组对象和函数
  • 如果想操作浏览器窗口或访问浏览器软件的信息,就用BOM。 比如: 打开和关闭窗口,鉴别浏览器名称和版本号等
  • 问题: BOM没有标准,有严重的兼容性问题。
  • 包括以下主要对象: window; history; location; navigator; document; screen; event

二. window对象

三个角色:

  • 代替ECMAScript中的global充当全局作用域对象var a=3; 结果变量a会保存在window中。parseInt,其实也可以是window.parseInt
  • 包含所有DOM,BOM的原生函数和对象。 document对象,其实保存在window.documentalert()其实是window.alert()
  • 代表当前窗口——可获得当前窗口的大小: 2组:
    1):完整窗口大小: outerWidthouterHeight
    2):文档显示区窗口大小: innerWidth,innerHeight
    3):文档显示区: 浏览器中专门显示网页的那部分白色区域
    4):可以打开和关闭窗口
    window.open() 可打开一个新窗口
    window.close() 可关闭一个窗口

三. 打开窗口:

  • 在当前窗口打开新链接,可后退:
    (1). html中: <a href="url" target="_self">
    (2). js中: window.open("url", "_self")

  • 在当前窗口打开新链接,禁止后退:
    (1). 只能用js做: location.replace(“新url”)

  • 在新窗口打开新链接,可打开多个:
    (1). html中: <a href="url" target="_blank">
    (2). js中: window.open("url", "_blank")

  • 在新窗口打开新链接,只能打开一个:
    (1). html中: <a href="url" target="blank">
    (2). js中: window.open("url", "blank")
    原理:
    其实浏览器中每个窗口在内存中都有一个唯一的名称
    浏览器规定,相同名称的窗口,只能出现一个。后出现的窗口会把先出现的窗口覆盖掉。
    在打开窗口跳转页面时,可以给新窗口指定不同窗口名,实现不同的打开窗口的效果。其实a元素的target属性值,就是要给新窗口的名称。
    window.open()的第二个参数值,也是要给新窗口的名称
    新窗口中可用window.name属性接住上个页面传过来的窗口名。window.name属性是BOM内置的关键词,所以我们自己起变量名时,不要用"name"。
    可实现以下三种效果:

    1. 在新窗口打开新链接,只能打开一个
      <a href="url" target="自定义新窗口名">
      window.open("url", "自定义新窗口名" )
    2. 在新窗口打开新链接,可打开多个:
      <a href="url" target="_blank">
      window.open("url", "_blank" )
      因为_blank是内置窗口名,表示不指定窗口名,而是让浏览器随机分配窗口名(看不见)。之后打开的窗口名,没有重复,所以可以打开多个窗口。
    3. 在当前窗口打开,可后退:
      <a href="url" target="_self">
      window.open("url", "_self" )
      因为_self也是内置窗口名,表示用当前窗口自己的名称作为新窗口的名称,结果,新窗口会覆盖当前窗口

四. history:

  • 什么是: 当前窗口内存中保存当前窗口打开后,成功访问过得url的历史记录数组。
  • 掌管着前进和后退:
    (1). 当当前窗口打开一个新地址后,就会将新地址push()到history中。
    (2). 默认浏览器始终显示最新的url
    (3). 能否前进或后退,取决于浏览器正在显示哪一条url的网页,以及这条url历史记录前后,是否有其他历史url存在。如果有,就可以前进或后退
  • 如何用程序前进后退:
    (1). history.go(1) 前进1步
    (2). history.go(-1) 后退1步,如果后端一步不管用,可history.go(-2)
    (3). history.go(0) 刷新

五. location

  • 什么是: 保存地址栏中地址信息,并提供跳转函数的对象
  • 何时: 只要希望获得url中的信息,或执行页面跳转或刷新功能时
  • 如何使用:
    (1). 属性:
    1 location.href 完整的url
    2 location.protocol 协议
    3 location.host 主机名+端口号
    4 location.hostname 主机名
    5 location.port 端口号
    6 location.pathname 相对路径
    7 location.search ?及其之后的查询字符串
    8 location.hash 锚点地址
    (2). 方法:
    1 在当前窗口打开,可后退:
    loction.href="新url" 立刻跳转,也可以: location="新url"location.assign("新url")
    2 在当前窗口打开,禁止后退:
    location.replace("新url")
    3 刷新页面: 2种:
    1). 普通刷新: 优先从浏览器本地缓存中获取资源。除非本地缓存中的资源不存在或过期,才从服务器下载新资源
    history.go(0)location.reload()
    2). 强制刷新: 无论缓存中是否有需要的资源文件,都要重新从服务器下载资源。
    location.reload(true) //强迫

六. navigator

  • navigator是保存浏览器配置信息的对象
  • 何时使用: 查看浏览器软件的配置信息, 判断浏览器的名称和版本号。
    (1). navigator.userAgent: 保存浏览器名称和版本号的字符串
    (2). 如何根据userAgent判断当前浏览器的名称和版本号(我上篇文章说过了)

有问题欢迎交流,个人博客

Bom及Bom对象的详细介绍相关推荐

  1. Java中创建对象的六个步骤 细分后(new关键字)对象头详细介绍

    要看的懂对象的创建过程,首先你得有对Java虚拟机和Java基础以及JUC很是熟悉, 比如类的加载过程.CAS.多线程.JVM的GC等等 文章目录 一.创建对象的六个步骤: 二.对象头的内部结构 首先 ...

  2. BOM之navigator对象和用户代理检测

    前面的话 navigator对象现在已经成为识别客户端浏览器的事实标准,navigator对象是所有支持javascript的浏览器所共有的.本文将详细介绍navigator对象和用户代理检测 属性 ...

  3. JavaScript函数和BOM及DOM编程(详细总结-无尿点)

    JavaScript函数和BOM及DOM编程(详细总结-无尿点) javascript 函数 一.javascript函数 1.1 概述 1.2 常见的系统函数 1.2.1 eval 1.2.2 pa ...

  4. java intent bundle_Android 通过Intent使用Bundle传递对象详细介绍

    Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法. 被传递的对象需要先实现序列化, ...

  5. javascript原生事件句柄、BOM、DOM对象属性方法总结

    javascript原生事件句柄.BOM.DOM对象属性方法总结 JS事件句柄 事件句柄 类型 说明 onabort 事件句柄 图像加载被中断 onblur 事件句柄 元素失去焦点 onfocus 事 ...

  6. laravel log 对象_swoole运行模式加速laravel应用的详细介绍(life)

    本篇文章给大家带来的内容是关于swoole运行模式加速laravel应用的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我的官方群点击此处. 一.Swoole Swoole ...

  7. java final对象_java面向对象基础_final详细介绍

    一.final关键字 1.final修饰的成员变量,其实就是常量 public class Example01 { public final String userName="小李" ...

  8. DOM windows对象 navigator对象 详细介绍

    目录 BOM Window对象是什么 全局作用域 Window对象的属性 window对象与self属性 Window对象的方法 用户的浏览器产品 今日金句 今日心情 BOM Window对象是什么 ...

  9. Wscript.Shell 对象详细介绍!!

    系列文章分类 C#专栏.VBS专栏.JAVA 专栏.IDEA 专栏 Wscript.Shell 对象详细介绍!! 前言 一. WshShell 对象有关的属性. 二. WshShell 对象有关的方法 ...

  10. bom event周期_MRP运行五大步骤逻辑详解(含动态安全库存、安全时间、批量计算方法、BOM表扩展方法的详细说明)...

    MRP运行五大步骤逻辑详解(含动态安全库存.安全时间.批量计算方法.BOM表扩展方法的详细说明) 作者:袁云飞(AlbertYuan)- 微信号yuanalbert 以下内容均为原创,希望对初学者有一 ...

最新文章

  1. 22. Node.Js Buffer类(缓冲区)-(二)
  2. AI 天气预报准确度高于气象台,一张 GPU 1秒预测未来 90 分钟天气
  3. SubVersion和Subclipse的简单使用方法
  4. PostgreSQL的那点事儿
  5. python的def函数_Python 学习之 def 函数
  6. LeetCode 1024. 视频拼接(动态规划/贪心)
  7. 实现用户注册功能---文件保存信息,如果用户名存在就死循环继续
  8. Java内部类实例测试及总结
  9. html中怎么加入动态图片,视频加动态水印 怎么在视频画面中添加一个gif动态图片水印...
  10. Micro LED将引领小间距显示的未来。
  11. ASP.NET 上传图片添加文字、Logo水印
  12. 形象标识 新松机器人_走进新松机器人公司 看新松机器人三大优势
  13. POI-获取Excel中合并单元格问题
  14. Win7解决telnet不是内部或外部命令的方法
  15. 使用命令行将文件上传到阿里云OSS
  16. Hibernate HQL 语法大全(下)
  17. nginx解决微信头像canvas跨域问题
  18. 【大学复习】终极版计算机网络复习提纲自制(大二上学期)
  19. Java游戏服务端开发之开课了
  20. QGroundControl(QGC)飞控地面站二次开发-修改地图

热门文章

  1. 如何打开设置了密码的ZIP文件?
  2. 学生作业信息管理系统
  3. 复赛全省第一,决赛发挥失误,他是如何挽回局势,保送北大的?
  4. 网络空间信息安全-密码学-信息密码技术基础
  5. 黑客X档案的《黑客免杀入门》
  6. 【总结】EJB开发过程中遇到的几个问题
  7. 谷歌推出人肉搜索引擎
  8. web漏洞扫描器原理_黑客秘籍:基于WAF日志的扫描器检测实践
  9. php递归函数名字,php递归示例 php递归函数代码
  10. 如何用word制作逼真的手写字体?