BOM的核心对象是window,它表示浏览器的一个实例。window既是经过Javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。浏览器
全部在全局做用域中声明的变量、函数都会变成window对象的属性和方法;缓存
(1) 定义全局变量与在window对象上直接定义属性的区别在于:全局变量不能经过delect操做符删除,而直接在window对象上定义的属性能够。服务器
var age = 29; window.color = "red"; delect window.age; //报错 delect window.color; //true
(2) 尝试访问未声明的变量会抛出错误,可是经过查询window对象,能够知道某个可能未声明的变量是否存在。框架
var newValue = olaValue; //这里会报错,由于oldValue未定义 var newValue = window.oldValue; //这里不会报错,由于这是一次属性查询
若是页面中包含框架,则每一个框架都拥有本身的window对象,而且保存在frames集合中。在frames集合中,能够经过数值索引(从0开始,从左至右,从上到下)或者框架名称来访问相应的window对象。每一个window对象都有一个name属性,其中包含框架的名称。函数
window.moveBy(0,100); //将窗口向下移动100像素 window.moveTo(200,300); //将窗口移动到(200,300)
(1)四个属性:innerWidth、innerHeight、outerWidth、outerHeightspa
(2)取得视口大小线程
var pageWidth=window.innerWidth, pageHeight=window.innerHeight; if(typeof pageWidth !="number"){ if(document.compatMode=="CSS1Compat"){ //经过检查document.compatMode来肯定页面是否处于标准模式 pageWidth=document.documentElement.clientWidth; pageHeight=document.documentElement.clientHeight } else{ pageWidth=document.body.clientWidth; pageHeight=document.body.clientHeight; } }
(3)调整浏览器窗口大小code
window.resiazeTo(100,100); //调整到100*100 window.resizeBy(100,50); //调整到100*150
window.open() 这个方法一般能够接收四个参数:要加载的URL
、窗口目标
、一个特性字符串
以及一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值
。对象
调用close()方法还能够关闭新打开的窗口,这个方法仅适用于经过window.open()打开的弹出窗口;
新建立的window对象有一个opener属性,其中保存着打开它的原始窗口对象。这个属性只在弹出窗口中的最外层window对象(top)中有定义。将新建立的变迁也的opener属性设置为null,即表示在单独的进程中运行新标签页。索引
超时调用:表示在指定时间后执行代码 setTimeout(要执行的代码,以毫秒表示的时间)、clearTimeout(超时调用ID)注意:通过必定时间后改代码也不必定执行,由于JS是一个单线程解释器,任务会按照队列执行,通过该时间将任务添加到队列中。若是队列为空,添加的代码就会当即执行,不然就要等前面的代码执行完了之后再执行
间歇调用:表示每隔指定的时间就执行一次代码 setINterval(要执行的代码,以毫秒表示的时间)、clearInterval(间歇调用ID)
//设置超时调用 var timeoutId = setTimeout(function() { alert("Hello World"); },1000); //取消 clearTimeout(timeoutId); //设置间歇调用 var timeintervalId = setTimeout(function() { alert("Hello World"); },1000); //取消 clearTimeout(timeintervalId);
在开发环境下,不多使用真正的间隙调用,缘由是后一个间歇调用可能会在前一个间歇调用结束以前启动。所以通常认为使用超时调用来模拟间歇调用是一种最佳模式。以下,是采用超时调用模拟一个间歇调用。
//间歇调用 var num = 0; var max = 10; var intervalId = null; function incrementNumber() { num++; //若是执行次数达到了max设定的值,则取消后续还没有执行的调用 if(num == max) { clearInterval(intervalId); alert("Done"); } } intervalId = setInterval(incrementNumber, 500); //超时调用模拟间歇调用 var num = 0; var max = 10; var intervalId = null; function incrementNumber() { num++; //若是执行次数达到了max设定的值,则取消后续还没有执行的调用 if(num < max) { setTimeout(incrementNumber, 500); }else{ alert("Done"); } } setTimeout(incrementNumber, 500);
alert(); confirm(); prompt(要显示给用户的提示,文本输入域的默认值); //显示“打印”对话框 window.print(); //显示“查找”对话框 window.find();
function getQueryStringArgs() { //取得查询字符串并去掉开头的问号 var qs = (location.search.length>0 ? location.search.substring(1) : ""), //保存数据的对象 args = {}, //取得每一项 items = qs.length ? qs.split("&") : [], item = null, name = null, value = null, //在for循环中使用 i = 0, len = items.length; //逐个将每一项添加到agrs对象中去 for(i=0; i<len; i++) { item = items[i].split("="); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if(name.length) { args[name] = value; } } return args; }
P208
replace(要导航到的URL),在调用replace()方法以后,用户不能会发哦前一个界面;
reload()做用是从新加载当前显示的界面。
location.reload(); //从新加载(有可能从缓存中加载)
location.reload(true); //从新加载(从服务器从新加载)
Navigator 对象包含有关浏览器的信息。一般用于检测显示网页的浏览器类型。
Screen 对象包含有关客户端显示屏幕的信息。
History 对象包含用户(在浏览器窗口中)访问过的 URL。History 对象是 window 对象的一部分,可经过 window.history 属性对其进行访问。
length属性,go()、back()、forward()方法