JavaScript之BOM
什么是BOM
BOM,Browser Object Model,即浏览器对象模型。浏览器页面初始化时,会在内存创建一个全局对象,用来描述当前窗口的属性和状态,如前进、后退、刷新等按钮。这个全局对象被称为浏览器对象模型。
window对象
alert()、confirm()、prompt()方法
window.alert('ppt');
var a=window.confirm('你确定要离开吗?');//confirm里面可以传参
console.log(a);//点击弹窗的确定返回true,点击取消则返回false
var called=window.prompt('你喜欢啥','艳儿');//'艳儿'是默认显示的内容
console.log(called);
setInterval() 、 setTimeout()方法
//setInterval() 是周期性循环操作 setTimeout()是延迟性操作
window.setTimeout(function(){
console.log('ppt');
},2000);//里面传两个参数,第一个参数是函数,第二是是时间单位是毫秒
// console.log('木子洋');//优先执行
var num=0;
var timer=null;
timer=window.setInterval(function(){
num++;
if(num>5){
clearInterval(timer);//清除现在开启的定时器
return;//跳出条件
}
console.log('num:'+num);
},1500);//传两个参数,第一个参数是函数,第二个参数是周期间隔时间
location对象
location属性
//location属性
console.log(location.host);//获取有端口号的服务器名称
console.log(location.hostname);//获取无端口号的服务器名称
console.log(location.href);//获取完整的url
console.log(location.pathname);//获取url目录或者文件名
console.log(location.port);//只获取端口号
console.log(location.protocol);//获取网址协议,有两种 http: https:表示加密的,大部分都是加密
console.log(location.search);//获取查询字符串
通过location.search属性访问每个查询字符串参数
function getQueryString(){
//1.取得去掉问号的查询字符串 ?user=ppt&pwd=111
var qs=location.search.length>0?location.search.substring(1):'';//2.取得每一项 存放到数组中
var items=qs.length?qs.split('&'):[];//["user=ppt", "pwd=111"]
var item=null,key=null,value=null,arr={};
for (var i = 0; i < items.length; i++){
item=items[i].split('=');//["user", "ppt"] ["pwd", "1111"]
key=decodeURIComponent(item[0]);
value=decodeURIComponent(item[1]);
if(key.length){
arr[key]=value;
}
}
return arr;
}
位置操作
// 位置操作
//2s之后跳转到博客页面
setTimeout(function(){
location.href='https://www.cnblogs.com/heganlin/p/5758078.html';
location.replace('https://www.cnblogs.com/heganlin/p/5758078.html');//回不到之前的页面了,不会产生历史记录
location.reload();//每2s之后重新加载整个网页,比较少用
},2000);
navigator对象
//navigator对象
console.log(navigator.plugins);
var flag=2;
var count=0;
function hasPlugins(name){
//如果有插件返回true
name=name.toLowerCase();
for(var i=0;i<navigator.plugins.length;i++){
if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1){
//有这个插件
flag=1;
// return true;
}else{
flag=0;
count++;
// return false;
}
if(flag===1){
return true;
}else if(flag===2){
return false;
}else if(count==navigator.plugins.length){
return false;
}
}
}
alert(hasPlugins('Native Client'));
history对象
//history对象
console.log(history);
var count=0;
setTimeout(function(){
count++;
console.log(count);
history.go(0);//如果是0则表示刷新,如果是1,相当于前进一次。如果是-1,相当于后退两次
},2000);