Javascript应用的平台很多,不仅仅针对Web。在Web中使用Javascript,BOM(browser object model,浏览器对象模型)是核心。

BOM提供了很多对象,用于访问浏览器的功能。

  1. window对象。

    • BOM的核心对象是window,它表示浏览器的一个实例。
    • window有双重角色,一个是BOM提供的浏览器对象,javascript通过window来访问浏览器的各个功能、属性。比如:
    • window的另一重角色,是javascript的Global对象。

      Global对象不显式存在,但是它是一个对象,全局定义的属性、方法都属于Global对象。如果让Global显式存在,那么window就是一个实例。如此一来,那些全局属性、方法都能通过window来访问了。比如:

    • 如果页面包含框架(frame),那么每个框架都有自己的window对象,而且保存在frames集合中。
    • 最外层框架就是浏览器窗口。top对象就指向这个框架。如图:
    • window.open()有两个应用:
      • 导航到另一个URL;
      • 打开一个新的浏览器窗口。
    • 如果要过一会儿再执行某个方法,使用:setTimeout();

      温馨提示,这些方法都属于window对象,window不用显式写出来。当然,如果你写window.setTimeout...也是可以的。

    • 如果要每隔一段时间就执行某个方法,使用:setInterval();
    • 另外还有一些对话框函数:alert()、confirm()、prompt();
  2. location对象
    • location对象提供了当前窗口中加载的文档相关的信息以及一些导航信息。
    • location属于window对象的一个属性,同时又是document(属于DOM)对象的属性。
      所以,window.location和document.location引用的是同一个对象;
    • location的位置操作:
      • 打开新的url:

        location.assign("www.baidu.com");

        window.location="www.baidu.com";

        location.href="www.baidu.com";
  3. history对象
    • history对象保存着用户浏览的历史记录,它也是window对象的属性;

      history.go(-1);//后退一页
      history.go(2);//前进两页;
      history.go("www.xxx.com");//跳转到最近的指定url;
      history.back();//后退一页;
      history.forward();//前进一页;
  4. 其他对象:
    • navigator对象:识别客户端浏览器,用以检测插件、注册处理程序等。
    • screen对象:javaweb编程中不太使用。

javascript笔记5-BOM的更多相关文章

  1. 【学习笔记】:JavaScript中的BOM对象

    JavaScript中的BOM对象 BOM(Browser Object Model):浏览器对象模型. BOM可用于对浏览器窗口进行访问,但BOM没有相关的标准,所以根据浏览器的不同,其中定义的对象 ...

  2. 从头开始学JavaScript 笔记(一)——基础中的基础

    原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript   ECMASc ...

  3. [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

    js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...

  4. [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符

    “1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...

  5. [Effective JavaScript 笔记]第3章:使用函数--个人总结

    前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...

  6. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

    函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...

  7. [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

    js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...

  8. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  9. javascript系列-class8.BOM

    1.浏览器对象模型( browser object model )   什么是BOM?    提起BOM就不得不提起JavaScript的构成.ECMAScript为JavaScript的核心,但是要 ...

  10. JavaScript笔记目录

    JavaScript笔记目录 一.JavaScript简介 二.在HTML中使用JavaScript ...持续更新中,敬请期待

随机推荐

  1. 《C#开发微信门户及应用》

    C#开发微信门户及应用(40)--使用微信JSAPI实现微信支付功能 C#开发微信门户及应用(39)--使用微信JSSDK实现签到的功能 C#开发微信门户及应用(38)--微信摇一摇红包功能 C#开发 ...

  2. Java开发Maven环境配置和介绍

    最近很火热的12306的订票软件go-home,我也下载了一份下来了,使用了一下,也从svn中把代码down下来了,但是在eclipse中竟然出错了,依赖的jar包都没有找到,后来才知道人家是用mav ...

  3. 探究linux文件

    一.Linux的文件: 文件名区分大小写:Linux没有文件拓展名:文件名支持长文件名,含空格,少部分标点符号. - _最好不要用空格 1 GUI图形用户界面:让简单的问题更加简单: CLI命令行界面 ...

  4. AngularJS理论基础

    AngularJS理论基础 AngularJs是一个用于设计动态web应用的结构框架. 它是一个框架,不是类库,是像EXT一样提供一整套方案用于设计web应用.它不仅仅是一个javascript框架, ...

  5. Play Framework介绍:主要概念(转)

    Play Framework是一个Rails风格的Full-stack Java Web框架. MVC模型 Play应用遵循Web架构使用的MVC架构模式. 它将应用分离到不同的层中:表现层(Pres ...

  6. eclipse 安装git的插件和上传项目

    这里有个链接,已经很详细的写了过程  博客1以及博客2.其实遇到安装的问题,就是因为我用的eclipse版本比较老,但是eclipse里面又装了好多插件,不想在重新安装eclipse.还有一个很好的博 ...

  7. easyui datagrid导出excel

    [第十四篇]easyui datagrid导出excel   <a class="btn btn-app" onclick="exportExcel()" ...

  8. journal

    dec 5 rpt prep exam dec 4 lie to me dec 3 exam dec 2 preparation for exam dec 1 preparation for exam ...

  9. BZOJ3996 [TJOI2015]线性代数

    就是求$D = A \times B \times A^T - C \times A^T$ 展开也就是$$D = \sum_{i, j} A_i * A_j * B_{i, j} - \sum_{i} ...

  10. cf卡中,wtmp文件较大,导致磁盘空间满了

    看了一下,有一个wtmp 和wtmp.1的文件非常大.wtmp记录的是机器注销.启动的信息.由此可见,机器长时间的不断重启,造成该日志记录超级大,把cf的空间给占满了. wtmp日志可以用who和la ...