js BOM
ECMAScript是javascript的核心,但是如果要在web中使用javascript,那么BOM(浏览器对象模型)才是真正的核心。BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。
BOM:浏览器对象模型(Browser Object Model,简称 BOM)提供了独立于内容而与浏览器窗口进行交互的对象。描述了与浏览器进行交互的方法和接口,可以对浏览器窗口进行访问和操作
-
window对象:当前浏览器窗体
属性:
status:状态栏(目前浏览器已弃用了)
opener:即谁打开我的,若在A用open打开B则B的opener就是A
closed:判断子窗体是否关闭
方法:
alert() 弹出框
confirm() 带确认,取消弹出框
setInterval() 每隔多少秒调用一次
clearInterval() 清除setInterval
setTimeout() 隔多少秒调用一次
cleartimeout() 清除setTimeout
open() 打开一个新的窗口
- 子对象:doument loation history screen ……
1>、 doument (讲dom已经介绍过它的属性方法 ,有感兴趣的可以翻看dom操作)
2>、 loation 跳转位置
<meta http-equiv=“refresh” content=“3; url =http://www.hteis.cn”;> //不加url指3秒刷新一次,加url指3秒跳转
window.location.href=“popl.html”;
location = pop.html
location.replace(“pop.html”) //浏览器不可以后退
//获取表单提交的数据
function fun() {
var search = location.search; //?urse=33344&pas=1223
var Obj = {};
//切掉?
var splits = search.slice(1).split("&"); //[urse=33344] [pas=1223]
console.log(splits)
//遍历循环splits
for (var i = 0; i < splits.length; i++) {
//然后再剪切掉=号
var arr = splits[i].split("="); //[0: "urse" 1: "1223"]
console.log(arr)
Obj[arr[0]] = arr[1];
}
console.log(Obj)
}
3>、 history 历史
history.back() == history.go(-1) //返回到前一页
history.go(-2) //括号里的参数负几就是返回前几步
eg: <a href="javascript:history.back()">返回上一页</a>
<a href="javascript:history.go(-2)">第一页</a>
4>、 screen //屏幕
screen.availHeight //屏幕实际高度
screen.availWidth //屏幕实际宽度
screen.height //屏幕高度
screen.width //屏幕宽度
document.getElementById("box").onclick = function(e){
console.log("相对于屏幕的"+e.screenX,e.screenY)
console.log("相对于文档显示区" + e.clientX,e.clientY)
console.log("相对于当前元素的" + e.offsetX,e.offsetY)
}
5>、 .event : 事件对象
- clientX,clientY:返回当事件被触发时,鼠标指针相对于浏览器窗口可视文档区域的左上角的的水平x坐标和垂直y坐标;
- screenX,screenY:返回当某个事件被触发时,鼠标指针相对于显示器左上角的水平x坐标和垂直y坐标;
- offsetX , offsetY / layerX , layerY:事件发生的时候,鼠标相对于源元素左上角的位置;
- x , y / pageX, pageY:事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素;
- altKey,ctrlKey,metaKey,shiftKey:返回当事件被触发时,”ALT”、”TRL”、”meta”、”SHIFT”键 是否被按下;
- keyCode:返回keydown和keyup事件发生的时候按键的代码,以及keypress 事件的Unicode字符(firefox2不支持 event.keycode,可以用 event.which替代 );
6>、.navigator : 浏览器的配置信息
- navigator.appVersion 浏览器的版本号
- navigator.appName 浏览器的名称
- navigator.language 浏览器使用的语言
- navigator.platform 浏览器使用的平台
- navigator.userAgent 浏览器的user-agent信息