一、BOM概念

  BOM:Browser Object Model  浏览器对象模型,定义了JS操作浏览器的一些方法和属性

二、BOM方法 (在BOM里面大部分的方法都是调用window对象下的方法得到的)

  1、open(页面的地址url,打开的方式)  方法  打开一个新的窗口(页面)

    (1) 如果url为空,则默认打开一个空白页面;

    (2) 如果打开方式为空,默认为新窗口方式打开;

    (3) 如果不写参数,则以新窗口的方法打开一个空白页面;

    返回值:返回新打开的窗口window对象

  2、close()  方法  关闭窗口

    (1) ff: 默认无法关闭

    (2) chrome: 默认直接关闭

    (3) ie: 询问用户

三、BOM属性

  1、window.navigator.userAgent :  可以得到当前浏览器的信息

  2、window.location : 浏览器地址信息

    (1) window.location.href : url   也是浏览器的地址信息

    (2) window.location.search : url?后面的内容

    (3) window.location.hash : url#后面的内容

四、BOM 窗口尺寸大小

  1、可视区的尺寸

    document.documentElement.clientWidth

    document.documentElement.clientHeight

  2、 滚动条滚动距离(存在兼容)

    (1) 其他浏览器均认为是文档的滚动条,因此是文档下的:

      document.documentElement.scrollTop[scrollLeft]

    (2) 谷歌浏览器认为滚动条是body的滚动条,因此是body下的:

      document.body.scrollTop[scrollLeft]

    解决方案:

    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

  

  3、 内容高 ( 不算边框外里面的内容 )

    oDiv.scrollHeight(Width);

  4、文档高

    document.documentElement.offsetHeight

    如果说获取documentElement的高度,会存在兼容问题,一般我们都是获取body的高度

    document.body.offsetHeight

五、BOM 事件

  1、onscroll : 当滚动条滚动的时候触发

    window.onscroll = function (){  };

  2、onresize : 当窗口大小发生改变的时候触发

    window.onresize = function (){  };

最新文章

  1. 制作手机相册 全屏滚动插件fullpage.js
  2. 初识SSH框架
  3. cookie和session的对比
  4. json根据key取values
  5. Android 在外部存储读写文件
  6. Cv运动分析与对象跟踪(转)
  7. bzoj3774
  8. python of zip moudle
  9. Java System类
  10. 读书笔记--用Python写网络爬虫01--网络爬虫简介
  11. Failed to load c++ bson extension, using pure JS version
  12. 关于Spring在多线程下的个人疑问
  13. maven项目搭建步骤
  14. VBA果然很强大
  15. SpringBoot系列: Java应用程序传参和SpringBoot参数文件
  16. LVN与其在Linux上的实现
  17. 更改file文件上传默认CSS样式
  18. Ubuntu关机时间过长,总是停在logo界面
  19. dp 优化 F2. Pictures with Kittens (hard version)
  20. PHP的openssl_encrypt方法的JAVA和JS的实现

热门文章

  1. How to create a zip file in NetSuite SuiteScript 2.0 如何在现有SuiteScript中创建和下载ZIP压缩文档
  2. MySQL数据类型:SQL_MODE设置不容忽视
  3. rsa or dsa?
  4. html 自定义标签的作用
  5. PAT (Advanced Level) 1002. A+B for Polynomials (25)
  6. CodeForces 614A Link/Cut Tree
  7. 操作IFRAME及元素
  8. [iOS Animation]-CALayer 定时器动画
  9. xCode中如何安装旧的模拟器
  10. 在Android studio环境下使用EventBus