javascript之BOM對象(三其他對象)

來源:互聯網
上載者:User

標籤:通過   系統   fun   pre   描述   form   blog   tor   back   

一、navigator對象

navigator使用來識別瀏覽器的,是所有支援javascript的瀏覽器所共有的。與BOM的其他對象不同,每個瀏覽器的navigator對象都有一套自己的屬性。

常見的屬性名稱:

appName 完整的瀏覽器名稱

cookieEnabled 表示cookie是否啟用

onLine 瀏覽器是否連網

platform 瀏覽器所在的系統平台

plugins 瀏覽器所安裝的外掛程式資訊的數組

preference() 使用者的喜好設定

userLanguage 瀏覽器的預設語言

1、檢測外掛程式

對於非IE瀏覽器可以使用plugins數組進行檢查,該數組的每一項都包含了一下屬性 :

  • name 外掛程式名稱
  • description 外掛程式描述
  • filename 外掛程式檔案名稱
  • length 外掛程式所處理的MIME類型數量
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;      }      alert(hasPlugin("Flash"));

通過navigator.plugins數組得到了外掛程式數組,然後在外掛程式數組中查詢是否對應的外掛程式名。

 

對於IE瀏覽器的外掛程式檢測方法:

在IE中檢測外掛程式的唯一方式就是試用ActiveXObject類型,並嘗試建立特定外掛程式的執行個體。IE是以COM對象來檢測外掛程式的,COM對象是以唯一識別碼來確定對象的。

Flash外掛程式的唯一表示符為:ShockwaveFlash.ShockwaveFlash

function  hasIEPlugin(name)      {        try{          new ActiveXObject(name);          return true;        }catch(ex)        {          return false;        }      }      alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));

由於兩種差別太大,所以通常採用針對特定外掛程式做檢測演算法

//檢測所有瀏覽器的Flash外掛程式      function hasFlush()      {        var result=hasPlugin("Flush");        if(!result)        {          result=hasIEPlugin("ShockwaveFlash.ShockwaveFlash");        }        return result;      }

首先是對所有瀏覽器都採用hasPlugin函數檢測如果返回true就不用再檢測IE因為IE已經用hasPlugin檢測過了,否則要專門對IE進行檢測。

2、註冊處理常式:

navigator.registerContentHandler(mimeType, uri, title);//接收三個參數,要處理的MIME類型,可以處理該MIME類型的頁面的URL以及應用程式的名稱
navigator.registerProtocolHandler(protocol, url, title);//接收三個參數,協議名稱,可以處理相應請求的頁面的URL以及應用程式的名稱

這兩個方法可以讓一個網站指明可處理的類型。

 

二、screen對象

screen對象包含著瀏覽器視窗外顯示器的資訊,每個瀏覽器的screen對象都包含有不同的屬性

三、history對象

history對象儲存使用者上網的記錄,從瀏覽器視窗開啟的時候算起。history是window的屬性,每一個視窗或者架構都有一個history對象。

go();方法,接收一個整數值或者字串,表示前進或者後退的頁數或者前往的頁面

history.forward();前進1頁

history.back();後退1頁

javascript之BOM對象(三其他對象)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.