js——navigator,screen,history对象(BOM 3)

navigator对象

识别客户端浏览器的事实标准,每个浏览器的navigator对象都有自己的一套属性,但也有一些共通的属性。

  • 插件检测

    • 对于非IE浏览器,可以使用plugins数组来检查浏览器是否安装了常见的插件。该数组每一项都包含以下属性:

      1. name:插件名
      2. description:插件描述
      3. filename:插件的文件名
      4. length:插件所处理的MIME类型数量
      //检测插件IE中无效
      	function hasPlugin(name){
      		var name=name.toLowerCase();
      		for(var i=0;i<navigator.plugins.length;i++)
      		{
      			if(navigator.plugins[i].name.toLowerCase().indexOf()>-1)
      				return true;
      		}
      		return false;
      	}
      
    • 对于IE,检查插件的方式是ActiveXObject类型,IE是以COM对象的方式实现插件的,而COM对象使用唯一表示符来标识。

      //检测IE中的插件,name是插件标识符
      	function hasIEPluhin(name){
      		try{
      			new ActiveXObject(name);
      			return true;
      
      		}catch(err){
      			return false;
      		}
      	}
      
      
    • 对于所有浏览器来说,前两种检测方法差别太大,检查插件的经典方法是每种插件有专门的检测函数

      //检测插件IE中无效
      	function hasPlugin(name){
      		var name=name.toLowerCase();
      		for(var i=0;i<navigator.plugins.length;i++)
      		{
      			if(navigator.plugins[i].name.toLowerCase().indexOf()>-1)
      				return true;
      		}
      		return false;
      	}
      	//检测IE中的插件,name是插件标识符
      	function hasIEPluhin(name){
      		try{
      			new ActiveXObject(name);
      			return true;
      
      		}catch(err){
      			return false;
      		}
      	}
      
      	//检测所有浏览器中的Flash
      	function hasFlash(){
      		var result=hasPlugin("Flash");
      		if(!result){
      			result=hasIEPluhin("ShockwaveFlash.ShockwaveFlash");
      		}
      		return result;
      	}
      	alert(hasFlash());
      
  • 注册处理程序

    可以让一个站点指明它可以处理的特定的类型信息,之后再详细介绍。

    • registerContentHandler()
    • registerProtocolHandler()

screen对象

用来表明客户端的能力,包括浏览器窗口外部显示器信息,如像素宽高度等。不同的浏览器可能有不同的属性,但是还是有很多属性是相同的

这些属性可以用来调整浏览器窗口大小,比如浏览器占屏幕的百分之多少。

window.resizeTo(screen.availWidth,screen.availHeight)

history对象

history对象保存着用户从打开窗口开始的上网的历史记录。history是window对象的属性,每个浏览器窗口,框架都有自己的history和window相关联。开发人员不能通过history知道用户浏览过的url,但可以借用用户的url列表,在不知道实际url的情况下就行后退和前进。

//后退一页
history.go(-1);

//前进两页
history.go(2);

//跳转到www.baidu.com,如果url列表中有这条记录,就跳转过去,没有就什么也不做
history.go("http://www.baidu.com");

//模仿前进和后退
//前进一页
history.forward();
//后退一页
history.back();

还有一个history.length保存着浏览记录的数量,可用来测定当前页面是不是第一个页面等。

posted @ 2019-08-18 11:49  ellenxx  阅读(176)  评论(0编辑  收藏  举报