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

navigator對象

識別客戶端瀏覽器的事實標準,每一個瀏覽器的navigator對象都有本身的一套屬性,但也有一些共通的屬性。javascript

  • 插件檢測java

    • 對於非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());
  • 註冊處理程序函數

    可讓一個站點指明它能夠處理的特定的類型信息,以後再詳細介紹。url

    • registerContentHandler()
    • registerProtocolHandler()

screen對象

用來代表客戶端的能力,包括瀏覽器窗口外部顯示器信息,如像素寬高度等。不一樣的瀏覽器可能有不一樣的屬性,可是仍是有不少屬性是相同的插件

這些屬性能夠用來調整瀏覽器窗口大小,好比瀏覽器佔屏幕的百分之多少。3d

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

history對象

history對象保存着用戶從打開窗口開始的上網的歷史記錄。history是window對象的屬性,每一個瀏覽器窗口,框架都有本身的history和window相關聯。開發人員不能經過history知道用戶瀏覽過的url,但能夠借用用戶的url列表,在不知道實際url的狀況下就行後退和前進。code

//後退一頁
history.go(-1);

//前進兩頁
history.go(2);

//跳轉到www.baidu.com,若是url列表中有這條記錄,就跳轉過去,沒有就什麼也不作
history.go("http://www.baidu.com");

//模仿前進和後退
//前進一頁
history.forward();
//後退一頁
history.back();

還有一個history.length保存着瀏覽記錄的數量,可用來測定當前頁面是否是第一個頁面等。

相關文章
相關標籤/搜索