1.BOM:Browser Object Model
浏览器 对象 模型
提供了专门用于操作浏览器的API -没有标准,使用较少,但大部分浏览器厂商已经统一实现了(老IE)
2.BOM对象:
window(定时器)、history、location、navigator、event、screen...
1.window对象:扮演了2个角色:
1.浏览器中,window代替了ES的Global充当全局作用域
包含了所有的全局对象、变量、函数
2、指代当前浏览器的窗口
-
1.网页打开新链接的方式 提升用户的体验感: 1.替换当前页面:可以后退: HTML:<a href="url">文字</a> JS:open("url","_self"); 2.替换当前页面:禁止后退:使用场景:电商网页:结账完毕后,不允许用户后退 history对象:保存了当前窗口的历史记录 location:保存了当前窗口正在打开的url location.replace("新url") //替换当前网址、不会产生历史记录 3.在新窗口打开,可以打开多个: HTML:<a href="url" target="_blank">文字</a> js:open("url","_blank"); 4.在新窗口打开,只能打开一个:使用场景:电商网页:跳转到支付结账页面,只允许用户打开一个 HTML:<a href="url" target="自定义">文字</a> JS:open("url","自定义") 自定义:窗口的底层都有一个名字,如果出现重复的名字则新窗口会替换掉原来的旧窗口 扩展:a 标签可以做的事 1.跳转 2.描点 3.下载:<a href="xx.rar/zip/exe">文字</a> 4.打开图片:<a href="xx.图片后缀"/txt>文字</a> 5.直接书写js:<a href="javascript:js代码;">文字</a> -
2.window对象:属性和方法: 属性: 获取浏览器窗口的大小 文档显示区域的大小:body部分 innerWidth/innerHeight 完整的浏览器大小: outerWidth/outerHeight 屏幕的大小: screen.width/height 方法: 1.打开新窗口:var newW=open("url","自定义name","width= ,height=,left=,top=") 特殊:如果没传入第三个参数,新窗口会和浏览器并为一体 如果传入第三个参数,新窗口会脱离浏览器 建议宽高不小于200 有可能会被浏览器拦截 2.关闭窗口:窗口close(); 3.修改窗口的大小:新窗口.resizeTo(newW,newH) 4.修改窗口的位置:新窗口.moveTo(x,y); 5.定时器:2种 1.周期性定时器:先等待,在执行一次,在等待,在执行一次... 开启:timer=setInterval((回调函数,间隔毫秒数); 停止:clearInterval(timer); 2.一次性定时器:先等待,在执行一次,结束 开启:timet=setTimeout(回调函数,间隔毫秒数); 停止:clearTimeout(timer); 两种定时器底层相同,可以互换扩展:获取鼠标的坐标:
1.事件中传入一个形参e->获得到事件对象event(其中一个作用获取鼠标的坐标) 2.获取: e.screenX/Y; //相对于屏幕 e.clientX/Y; //相对于浏览器客户端 e.pageX/Y; //相对于网页的 鼠标跟随效果:关键点: 1.绑定事件:window.onmousemove 2.图片位置一定和鼠标位置一起 3.图片的加载速度比JS的执行速度要慢,img.onlode=function(){ //最后才会执行 }扩展:
1.str.trim(); //去掉字符串开头结尾的空白字符 2.var bool=confirm("提示文字");//用户确认框 用户点击确认 ->true 用户点击取消 ->false