BOM-浏览器对象模型

124 阅读3分钟

一、BOM概念

定义了js操作浏览器的接口,提供了访问某些功能(如浏览器窗口大小、版本信息、浏览历史记录等)的途径及操作方法;

window对象的属性和方法都可以省略window, 直接使用;

所有的全局变量都是window对象的属性;(变量)

所有的全局函数都是window对象的方法;(函数、循环定时器等) 

    var  name="xiaoming";   
 console.log(name)//xiaoming  
 console.log(window.name)//xiaoming

定义全局变量和定义在window对象上的属性的区别:

全局变量不能通过delete操作符来删除;而直接在window对象上定义的属性可以。

二、window对象常用的属性和方法

1、三个弹出框:

alert('内容')----弹出框

 alert('hello world')

confirm('提示信息')----确认框; 确认返回true,取消返回false

 var flag = confirm("确定要付款吗?"); console.log(flag);

prompt('提示信息','默认值')   输入框返回数值为字符串;

 var x = prompt("请输入数据","666");    console.log(x);

2、两个定时器

setTimeout(执行任务,执行时间) 延时定时器  第一个参数可以是字符串,也可以是一个函数。 

clearTimeout()清除延时定时器

setInterval(执行任务,执行时间) 循环定时器 参数如上

 clearInterval()清除循环定时器

3、弹出窗口

window.open():打开新的浏览器窗口,或者导航到一个特定的URL。

接受参数:window.open(url,窗口名称,弹出窗口外观,新页面是否取代浏览器历史记录中当前加载页面的布尔值)。

//在主窗口中打开子窗口window.open("sub.html","heihei","width=200,height=200,left=200,top=200");//关闭当前窗口window.close();

4、onload事件(延迟加载js)

作用:页面或者图像加载完成后立即发生;

注意:**onload**则是这个Image对象的load事件回调,当图片加载完成后执行onload绑定的函数

window.onload = function(){                var d = document.getElementById("t");                d.innerHTML = "666";            }   

h5新属性:readyState属性。三个状态:

loading 正在加载文档

interactive  可交互  文档已被解析,"正在加载"状态结束,但是诸如图像,样式表和框架之类的子资源仍在加载。

complete  已经加载完文档   

 document.onreadystatechange = function () {      if (document.readyState === "complete") {        console.log("文档加载好");      }    };

三、location对象

Location 对象包含有关当前 URL 的信息

1、页面跳转

href属性:代表当前网页;

location.href //当前网页地址

location.href='/url' 打开url页面 window.location.href和self.location.href意思一样

2、查询字符串参数

location.search 返回url的查询字符串。

function getQueryStringArgs(){
    //取得查询字符串并去掉开头的问号
    var qs = (location.search.length > 0 ? location.search.substring(1) : "");
    //保存数据的对象
    var args = [];
    //取得每一项
    var items = qs.length ? qs.split("&") : [];
    var item = null;
    var name = null;
    var value = null;
    //逐个将每一项添加到args对象中
    for(var i=0;i< items.length;i++){
        item = items[i].split("=");
        name = decodeURIComponent(item[0]);
        value = decodeURIComponent(item[1]);
        if(name.length){
            args[name] = value;
        }
    }
    return args;
}

//假设查询的字符串是?q=javascript&num=10
    var args = getQueryStringArgs();
    alert(args["q"]);//javascript
    alert(args["num"]);//10

3、location.replace('url')覆盖原先网页 没有浏览痕迹 

location.replace("http://www.baidu.com");

4、location.reload() 页面刷新

四、history

history对象包含用户在浏览器窗口访问过的URL。

方法:

back():加载history列表中的前一个URl;

forward():加载history列表中的下一个URL;

go():加载history列表中的某个具体页面。

history.go(number|URL)

number为数字的话是表示要访问的URL在history的URL列表中的相对位置。负数为后退,正数为前进。

五、navigator对象

navigator对象表示包含有关浏览器的信息;

六、screen对象

screen对象包含有关客户端显示屏幕的信息