文章目录
  1. 1. window对象
    1. 1.1. 全局作用域
    2. 1.2. 窗口关系及框架
    3. 1.3. 窗口位置
    4. 1.4. 窗口大小
    5. 1.5. 导航和打开窗口
    6. 1.6. 间歇调用和超时调用
    7. 1.7. 系统对话框
  2. 2. location
  3. 3. navigation
  4. 4. screen
  5. 5. history 对象

BOM 是浏览器对象模型,用于访问浏览器,与网页无关。

window对象

window对象是BOM的核心对象,是浏览器的一个实例。window对象既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。

全局作用域

  1. 在全局作用域中声明的变量、函数会变成window对象的属性与方法。但全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以。
  2. 尝试访问未声明的变量会抛出错误,但通过查询window对象,可以知道某个可能未声明的变量是否存在

窗口关系及框架

如果页面中包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中

窗口位置

  1. 可以用下面的代码跨浏览器取得窗口左边和上边的位置

    1
    2
    var leftPos = (typeof window.screenLeft == "number")?window.screenLeft:window.screenX;
    var topPos = (typeof window.screenTop == "number")?window.screenTop:window.screenY;
  2. moveTo() 与 moveBy() 可以将窗口精确地移动到一个新位置。

窗口大小

  1. document.documentElement.clientWidth 和 document.documentElement.clientHeight 中保存可页面视口的信息
  2. resizeTo() 和 resizeBy() 方法可以调整浏览器窗口的大小。

导航和打开窗口

  1. window.open() 既可以导航到一个特定的URL,也可以打开一个新的浏览器窗口。window.close()用于关闭这样打开的窗口。

间歇调用和超时调用

  1. setTimeout() 与 setInterval() 都是window对象的方法。第一个参数 最好不传递字符串,因为传递字符串可能导致性能损失。
    第二个参数是告诉js 再过多长时间把当前任务添加到队列中,若当前队列是空的,那么添加的代码会立即执行;如果队列不是空的,那就要等前面的代码执行完再执行,所以经过指定的时间代码不一定执行。
  2. setTimeout() 会返回一个数值ID,表示超时调用,这个超时调用ID是计划中代码的唯一表示符,可以用来取消超时调用。clearTimeout(id).
    clearInterval()同样。
  3. 使用超时调用来模拟间歇调用是一种最佳的模式。在开发环境中很少使用真正的间歇调用,原因是后一个间歇调用可能会在前一个间歇调用结束之前调用。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var num =0;
    var max =10;
    function incrementNumber(){
    num++;
    if(num<max){
    setTimeout(incrementNumber,500);
    }else{
    alert("done");
    }
    }
    setTimeout(incrementNumber,500);

系统对话框

  1. alert() confirm() prompt(),这几个方法是同步的和模态的。prompt接收两个参数:要显示给用户的文本提示和文本输入域的默认值

location

location 提供了与当前窗口中加载的文档有关的信息。 location对象既是window对象的属性,也是document对象的属性,即 window.location 和 document.location 引用的是同一个对象。

  1. location 对象可通过 不同的属性 访问url的独立字段: hash host hostname href pathname port protocol search
  2. decodeURIComponent() 用于解码 字符串
  3. location对象可以用多种方式开改变浏览器的位置。 location.href 和location.assign();或者通过修改location的不同URL字段属性后,浏览器的历史记录中就会生成一条新纪录,可以单击”回退”按钮导航到前一个页面,要禁用这种行为,可以使用replace()方法。这个方法只接收一个参数,即要导航到的URL,结果虽然导致了浏览器位置改变,但不会再历史记录中生成新纪录。在调用replace()方法后,用户不能回到前一个页面。
  4. reload() : 用于重新加载当前显示的页面。reload()若页面自上次请求以来没有改变过,页面就会从浏览器缓存中重新加载,reload(true)为强制 从服务器中重新加载。

nvigation 对象可以用来检测插件和注册处理程序

screen

screen对象用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息。

history 对象

history 对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。使用go() 方法可以在用户的历史记录中任意跳转。history在创建自定义的“后退”和”前进”按钮及检测当前页面是不是用户历史记录中的第一个页面时使用。

文章目录
  1. 1. window对象
    1. 1.1. 全局作用域
    2. 1.2. 窗口关系及框架
    3. 1.3. 窗口位置
    4. 1.4. 窗口大小
    5. 1.5. 导航和打开窗口
    6. 1.6. 间歇调用和超时调用
    7. 1.7. 系统对话框
  2. 2. location
  3. 3. navigation
  4. 4. screen
  5. 5. history 对象