BOM提供了一组以windows为核心的对象,实现了对浏览器窗口访问的控制,
BOM中定义了六种对象
window对象表示浏览器打开的窗口
document对象表示浏览器加载页面的文档对象
location对象包含了浏览器当前url信息
navigator对象包含了浏览器本身的信息
screen对象包含了客户端屏幕及渲染能力的信息
history对象包含了浏览器访问网页的历史信息
总、window对象主要分为以下五种功能
1、调整窗口的尺寸和位置
2、打开新窗口
3、系统提示框
4、状态栏控制
5、定时操作
一、调整窗口的尺寸和位置//现在用不了
1、window.moveBy(dx,dy);(相对定位)
//说明,出于安全性和用户友好的考虑,不允许使用JavaScript脚本将浏览器窗口移动到屏幕可视区域之外,因此当浏览器窗口到达屏幕可视区域边界时,浏览器窗口在这个方向上将不能再移动,始终保证浏览器窗口在屏幕可视区域之内
2、window.moveTo(x,y);(绝对定位)
3、window.resizeBy(dw,dh);
4、window.resizeTo(w,h);
二、打开新窗口
1、open打开一个浏览器窗口
window.open([url][,target][,options])
window.open();//打开一个新的空白窗口
window.open(“1.html”);//打开一个新的窗口,并加载1.html页面
window.open(“1.html”,”_self”);在当前窗口
window.open(“1.html”,”_blank”);在空白窗口
window.open(“1.html”,”_parent”);//在父窗口
window.open(“1.html”,”_top”);//在顶层窗口
window.open(“1.html”,”_mytarget”);//在新窗口加载1.html,该窗口命名为mytarget
三、系统提示框
window.alert([message]);
window.confirm([message]);
window.prompt([message][,default])
四、状态控制栏
window.status = “warning:
五、定时操作
window.setInterval
window.clearInterval
window.setTimeout
window.clearTimeout
- setInterval(function(){},time);运行机制?
javascript中是单线程语言,所以所有的任务都是一个连接一个完成,也就是队列任务,必须要等,一个任务结束,才能执行下一个任务,然后有的任务特别不好,比如单击一个按钮,你不知道什么时候单击一个按钮,按钮之后的任务就会挂起,所以很不好,那怎么办呢,那就用空间换取时间,把挂起的任务放在一边,先执行后边的任务,把挂起的任务放在一个任务队列里面,组后等主线程执行完毕后再去执行挂起的任务。
(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
(2)主线程之外,还存在一个”任务队列”(task queue)。只要异步任务有了运行结果,就在”任务队列”之中放置一个事件。
(3)一旦”执行栈”中的所有同步任务执行完毕,系统就会读取”任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
(4)主线程不断重复上面的第三步。
http://www.ruanyifeng.com/blog/2014/10/event-loop.html