javascript学习之路九------BOM

BOM–浏览器对象模型

window对象-------Global对象

在全局作用域定义的变量是window的,定义的方法也是window的,全局定义的变量不能delete删除,通过点属性去复制的变量就可以删除:
var message=“ok”;//不可删除
window.message=“ok”//可以删除

location对象和navigator对象都是window的对象

每一个frame框架下都有一个window对象,每个window对象都有一个name属性。

//兼容不同浏览器下获取浏览器左上部的值
       var leftPos=(typeof window.screenLeft=="number")? window.screenLeft:window.screenX;
       var topPos=(typeof window.screenTop=="number")? window.screenTop:window.screenY;
       alert(leftPos+","+topPos);

打开窗口:

window.open("www.baidu.com","__blank","height=150,width=200,top=200,left=400");

第一个参数是URL链接,第二个参数是是不是在frame框架下打开,还是打开一个新的窗口,第三个就能写这四个参数,不信你试试别的,基本没效果,第四个参数是一个布尔值,是指在不打开新窗口的情况下用。

window.close();//关闭窗口

判断窗口是否关闭:

window.closed==true,为真!!!

为了不让大家对浏览器产生麻烦,乱弹东西,浏览器本身也会做出诸多限制!!!
检测浏览器是否同意自动弹出窗口:

var blocked=false;
try{
    var win=window.open("www.baidu.com","__blank","height=150,width=200,top=200,left=400");//自动弹出
    if(win==null){
        blocked=true;
    }
}catch(ex){
    blocked=true;
}
if(blocked){
    alert("弹出已经被限制了!!!");
}

window有两个时间相关的方法:
setTimeout(“函数”,毫秒数);//要等待多少毫秒在执行
setInterval(“函数”,毫秒数);//每隔一段时间执行一次,循环执行,直到取消
执行完毕返回一个ID
clearTmeout(ID);//就取消了

//弹出框

alert("hello");

//一问一答的框,是或者否

if(confirm("你确定吗?")){
    alert("ok,我明白了");
}else{
    alert("好的,你还不确定");
}

//输入框

var res=prompt("请输入你的名字","");
if(res !=null){
    alert("你好!"+res);
}else{
    alert("再见?");
}

location对象:
本身就是window的属性:保存了当前文档的信息
window.location==document.location,他俩是一回事

console.log("散列值#:"+window.location.hash);
console.log("服务器名称端口号:"+window.location.host);
console.log("服务器名称:"+window.location.hostname);
console.log("完整的URL:"+window.location.href);
console.log("目录名:"+window.location.pathname);
console.log("端口:"+window.location.port);
console.log("通讯协议:"+window.location.protocol);
console.log("查询?开头的字符串:"+window.location.search);

查询URL里面的get参数:

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 val=null;
    var i=0;
    var len=items.length;
    for(i=0;i<len;i++){
        item=items[i].split("=");
        name=decodeURIComponent(item[0]);
        val=decodeURIComponent(item[1]);
        if(name.length){
            args[name]=val;
        }
    }
    return args;
}
var res=getQueryStringArgs();
console.log(res);

重新跳页面:

window.assgin("http://www.baidu.com");
location.href="http://www.baidu.com";//常用的一种方式
window.location="http://www.baidu.com";

上面的方法是一样的。

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

用这种方法打开的网站是不会返回的。

location.reload();//重新加载页面
location.reload(true);//重新加载服务器上的页面

Navigator对象:

console.log("浏览器名称:"+navigator.appCodeName);
console.log("次版本信息:"+navigator.appMinorVersion);
console.log("完整的浏览器名称:"+navigator.appName);
console.log("版本:"+navigator.appVersion);
console.log("浏览器编译版本:"+navigator.buildID);
console.log("cookie是否启用:"+navigator.cookieEnabled);
console.log("客户端cpu类型:"+navigator.cpuClass);
console.log("浏览器是否启用了java:"+navigator.javaEnabled());
console.log("浏览器主语言:"+navigator.language);
console.log("浏览器中注册的MINE类型数组:"+navigator.mineTypes);
console.log("浏览器是否连接到了互联网:"+navigator.onLine);
console.log("客户端操作系统:"+navigator.oscpu);
console.log("浏览器所在系统平台:"+navigator.platform);
console.log("浏览器插件信息数组:"+navigator.plugins);
console.log("设置用户首选项:"+navigator.preference());
console.log("产品名称:"+navigator.product);
console.log("产品次要信息:"+navigator.productSub);
console.log("浏览器的用户代理字符串:"+navigator.userAgent);

检测是否有我们查询的插件:

//除IE以外
function hasPlugin(name){
    name=name.toLowerCase();
    for(var i=0;i<navigator.plugins.length;i++){
        if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1){
            return true;
        }
    }
    return false;
}
//IE
function hasIEPlugin(name){
    try{
        new ActiveXObject(name);
        return true;
    }catch (ex){
        return false;
    }
}
//检测方法:
function hasFlash(){
    var result=hasPlugin("Flash");
    if(!result)
    {
        result=hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
    }
    return result;
}
alert(hasPlugin());

Screen对象:
Screen.width:屏幕像素宽度
Screen.height:屏幕像素高度

history对象:
history.back();向后一页
history.forward();向前一页
history.go(数字);表示去浏览过的哪一页,可以为正值,也可以为负值。
history.go(字符串);表示去url近字符串的那一页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值