BOM对象
- 浏览器对象模型
- BOM可以通过JS操作浏览器
- BOM中提供了一组对象,来完成对浏览器的操作
BOM对象·
Window:
代表整个浏览器窗口,同时window也是网页中的全局对象Navigator:
代表当前浏览器的信息,通过该对象可以识别不同的浏览器Location:
代表当前浏览器的地址栏信息,通过Location可以获取地址栏信息,或者操作浏览器跳转页面
History:
代表浏览器历史记录,通过该对象来操作浏览器历史记录。
- 由于隐私原因,该对象不能获取具体历史记录。
- 只能操作浏览器向前或者向后翻页
- 该操作只在当此访问时有效。【当此的向前,向后翻页】
Screen:
代表用户屏幕信息,通过该对象可以获取到用户显示器的相关信息这些对象在浏览器中,都是作为
window
属性保存的。
- 可以作为
window
对象属性访问,也可以直接访问[全局变量]
Navigator
- 代表的当前浏览器信息,通过该对象可以来识别不同浏览器
- 由于历史原因,Navigator对象中大部分属性已经不能帮助识别浏览器
一般只会使用
userAgent
来判断浏览器信息
userAgent
是一个字符串,这个字符串中含有又来描述浏览器信息的内容。不同浏览器会有不同的userAgent
IE11中已经将微软和IE相关的表示去除了。 所以基本不能通过userAgent
来识别一个浏览器是否是IE了
var ua = navigator.userAgent;
console.log(ua);
if (/firefox/i.test(ua)){
alert("火狐浏览器");
}else if(/chorme/i.test(ua)){
alert("谷歌浏览器");
}else if (/msie/i.test(ua)){
alert("IE浏览器");
}else if ("ActiveXObject" in window){
alert("IE11浏览器");
}
如果通过userAgent
不能判断,还阔以通过一些浏览器中特有对象,来判断浏览器信息。比如 ActiveXObject
History
length:
可以获取到当前访问的连接数量back():
可以用来回退到上一个页面,作用和浏览器回退按钮一样forword():
可以用来跳转到下一个也i按,作用和浏览器前进按钮一样
go():
可以用来跳转到指定页面。
- 需要一个整数作为参数
- 1:向前跳转一个页面相当于
forword()
- 2:向前跳转两个页面
- -1:向后跳转一个页面
- -2:向后跳转两个页面
window.onload = function(){
var btn = document.getElementById("btn");
btn.onclick = function (){
history.back();
}
}
Location
/*
Location封装了浏览器的地址栏信息
*/
window.onload = function(){
var btn = document.getElementById("btn01");
btn.onclick = function (){
// 如果直接将location修改为一个完整路径,或相对路径,会跳转到响应页面。
//并且会生成响应的历史记录
var url = "http://www.google.com";
alert(location.port);
location = url;
//assign(URL) 跳转到其他页面。作用和直接修改location一样
assign(url);
//reload().重新载入页面,作用和刷新一样
//如果在方法中传递一个true。作为参数,则会强制清空缓存刷新页面
location.reload();
//replace()
//可以使用一个新的页面替换当前页面,调用完毕也会跳转页面。
//不会生成历史记录,不能使用回退按钮
location.replace("04拖拽.html");
}
}
window
定时器
var timer = setInterval(function(){},time);
:生成一个定时器
clearInterval(timerID)
:阔以接受任意参数,如果参数是一个有效的定时器表示,则停止对应的定时器。否则,什么也不做。
var timeouter = setTimeout()
:延时调用一个函数不马上执行,而是隔一段时间以后执行,而且只执行一次
clearTimeout(timeOuter);
/*
延时调用,
延时调用一个函数不马上执行,而是隔一段时间以后执行,而且只执行一次
定时调用会执行多次,延时调用只执行一次
两者阔以互相代替
*/
var timeOuter = setTimeout(function(){
console.log("我是5喵后的你哦。");
},5000);
clearTimeout(timeOuter);