【javascript】BOM——navigator 對(duì)象

  • 每個(gè)瀏覽器中的navigator對(duì)象也都有一套自己的屬性。下表列出了存在于所有瀏覽器中的屬性和方法友绝,以及支持它們的瀏覽器版本堤尾。
屬性或方法 說(shuō) 明 IE Firefox Safari/Chrome Opera
appCodeName 瀏覽器的名稱。通常都是Mozilla迁客,即使在非Mozilla瀏覽器中也是如此 3.0+ 1.0+ 1.0+ 7.0+
appMinorVersion 次版本信息 4.0+ 9.5+
appName 完整的瀏覽器名稱 3.0+ 1.0+ 1.0+ 7.0+
appVersion 瀏覽器的版本郭宝。一般不與實(shí)際的瀏覽器版本對(duì)應(yīng) 3.0+ 1.0+ 1.0+ 7.0+
buildID 瀏覽器編譯版本 2.0+
cookieEnabled 表示cookie是否啟用 4.0+ 1.0+ 1.0+ 7.0+
cpuClass 客戶端計(jì)算機(jī)中使用的CPU類型(x86辞槐、68K、Alpha粘室、PPC或Other) 4.0+
javaEnabled() 表示當(dāng)前瀏覽器中是否啟用了Java 4.0+ 1.0+ 1.0+ 7.0+
language 瀏覽器的主語(yǔ)言 1.0+ 1.0+ 7.0+
mimeTypes 在瀏覽器中注冊(cè)的MIME類型數(shù)組 4.0+ 1.0+ 1.0+ 7.0+
onLine 表示瀏覽器是否連接到了因特網(wǎng) 4.0+ 1.0+ 9.5+
oscpu 客戶端計(jì)算機(jī)的操作系統(tǒng)或使用的CPU 1.0+
platform 瀏覽器所在的系統(tǒng)平臺(tái) 4.0+ 1.0+ 1.0+ 7.0+
plugins 瀏覽器中安裝的插件信息的數(shù)組 4.0+ 1.0+ 1.0+ 7.0+
preference() 設(shè)置用戶的首選項(xiàng) 1.5+
product 產(chǎn)品名稱(如 Gecko) 1.0+ 1.0+
productSub 關(guān)于產(chǎn)品的次要信息(如Gecko的版本) 1.0+ 1.0+
register-ContentHandler() 針對(duì)特定的MIME類型將一個(gè)站點(diǎn)注冊(cè)為處理程序 2.0+
register-ProtocolHandler() 針對(duì)特定的協(xié)議將一個(gè)站點(diǎn)注冊(cè)為處理程序 2.0
systemLanguage 操作系統(tǒng)的語(yǔ)言 4.0+
userAgent 瀏覽器的用戶代理字符串 3.0+ 1.0+ 1.0+ 7.0+
userLanguage 操作系統(tǒng)的默認(rèn)語(yǔ)言 4.0+ 7.0+
userProfile 借以訪問(wèn)用戶個(gè)人信息的對(duì)象 4.0+
vendor 瀏覽器的品牌 1.0+ 1.0+
vendorSub 有關(guān)供應(yīng)商的次要信息 1.0+ 1.0+

1榄檬、檢測(cè)插件

  • 檢測(cè)瀏覽器中是否安裝了特定的插件。對(duì)于非IE瀏覽器衔统,可以使用plugins數(shù)組鹿榜,該數(shù)組中的每一項(xiàng)都包含下列屬性。
    • name:插件的名字
    • description:插件的描述缰冤。
    • filename:插件的文件名犬缨。
    • length:插件所處理的MIME 類型數(shù)量。
  • 在檢測(cè)插件時(shí)棉浸,需要循環(huán)迭代每個(gè)插件并將插件的name與給定的名字進(jìn)行比較怀薛。
  • hasPlugin()函數(shù)接受一個(gè)參數(shù):要檢測(cè)的插件名
/**檢測(cè)插件(在IE 中無(wú)效),在Firefox、Safari迷郑、Opera和Chrome中可以使用這種方法來(lái)檢測(cè)插件枝恋。**/
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;
}
//檢測(cè)Flash
alert(hasPlugin("Flash"));
//檢測(cè)QuickTime
alert(hasPlugin("QuickTime"));
  • 在IE 中檢測(cè)插件的唯一方式就是使用專有的ActiveXObject類型,并嘗試創(chuàng)建一個(gè)特定插件的實(shí)例嗡害。
  • IE 是以COM對(duì)象的方式實(shí)現(xiàn)插件的焚碌,而COM對(duì)象使用唯一標(biāo)識(shí)符來(lái)標(biāo)識(shí)。因此霸妹,要想檢查特定的插件十电,就必須知道其COM標(biāo)識(shí)符。
//檢測(cè)IE 中的插件
function hasIEPlugin(name){
    try {
        new ActiveXObject(name);
        return true;
    } catch (ex){
        return false;
    }
}
//檢測(cè)Flash
alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));
//檢測(cè)QuickTime
alert(hasIEPlugin("QuickTime.QuickTime"));
  • 鑒于檢測(cè)這兩種插件的方法差別太大叹螟,因此典型的做法是針對(duì)每個(gè)插件分別創(chuàng)建檢測(cè)函數(shù)鹃骂,而不是使用前面介紹的通用檢測(cè)方法。
//檢測(cè)所有瀏覽器中的Flash
function hasFlash(){
    var result = hasPlugin("Flash");
    if (!result){
        result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
    }
    return result;
}
//檢測(cè)所有瀏覽器中的QuickTime
function hasQuickTime(){
    var result = hasPlugin("QuickTime");
    if (!result){
        result = hasIEPlugin("QuickTime.QuickTime");
    }
    return result;
}
//檢測(cè)Flash
alert(hasFlash());
//檢測(cè)QuickTime
alert(hasQuickTime());

2罢绽、注冊(cè)處理程序

  • Firefox/Chrome等瀏覽器為navigator對(duì)象新增了registerContentHandler()和registerProtocolHandler()方法畏线。這兩個(gè)方法可以讓一個(gè)站點(diǎn)指明它可以處理特定類型的信息。

  • registerContentHandler()方法接收三個(gè)參數(shù):要處理的MIME類型良价、可以處理該MIME類型的頁(yè)面的URL 以及應(yīng)用程序的名稱寝殴。

//將一個(gè)站點(diǎn)注冊(cè)為處理RSS 源的處理程序
navigator.registerContentHandler("application/rss+xml",
"http://www.somereader.com?feed=%s", "Some Reader");
/**第一個(gè)參數(shù)是RSS 源的MIME 類型。第二個(gè)參數(shù)是應(yīng)該接收RSS 源URL 的URL明垢,其中的%s 表示RSS 源URL蚣常,由瀏覽器自動(dòng)插入,當(dāng)下一次請(qǐng)求RSS源時(shí),瀏覽器就會(huì)打開指定的URL痊银,而相應(yīng)的Web 應(yīng)用程序?qū)⒁赃m當(dāng)方式來(lái)處理該請(qǐng)求**/
  • registerProtocolHandler()方法史隆,它也接收三個(gè)參數(shù):要處理的協(xié)議(例如,mailto 或ftp)曼验、處理該協(xié)議的頁(yè)面的URL 和應(yīng)用程序的名稱泌射。
//將一個(gè)應(yīng)用程序注冊(cè)為默認(rèn)的郵件客戶端
navigator.registerProtocolHandler("mailto",
"http://www.somemailclient.com?cmd=%s", "Some Mail Client");
/**
注冊(cè)了一個(gè)mailto 協(xié)議的處理程序粘姜,該程序指向一個(gè)基于Web 的電子郵件客戶端。同樣熔酷,
第二個(gè)參數(shù)仍然是處理相應(yīng)請(qǐng)求的URL孤紧,而%s 則表示原始的請(qǐng)求。
**/
好好學(xué)習(xí)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拒秘,一起剝皮案震驚了整個(gè)濱河市号显,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躺酒,老刑警劉巖押蚤,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異羹应,居然都是意外死亡揽碘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門园匹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)雳刺,“玉大人,你說(shuō)我怎么就攤上這事裸违∫磋耄” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵供汛,是天一觀的道長(zhǎng)枪汪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)怔昨,這世上最難降的妖魔是什么雀久? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮朱监,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘原叮。我一直安慰自己赫编,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布奋隶。 她就那樣靜靜地躺著擂送,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唯欣。 梳的紋絲不亂的頭發(fā)上嘹吨,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音境氢,去河邊找鬼蟀拷。 笑死碰纬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的问芬。 我是一名探鬼主播悦析,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼此衅!你這毒婦竟也來(lái)了强戴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挡鞍,失蹤者是張志新(化名)和其女友劉穎骑歹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體墨微,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡道媚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欢嘿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衰琐。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖炼蹦,靈堂內(nèi)的尸體忽然破棺而出羡宙,到底是詐尸還是另有隱情,我是刑警寧澤掐隐,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布狗热,位于F島的核電站,受9級(jí)特大地震影響虑省,放射性物質(zhì)發(fā)生泄漏匿刮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一探颈、第九天 我趴在偏房一處隱蔽的房頂上張望熟丸。 院中可真熱鬧,春花似錦伪节、人聲如沸光羞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)纱兑。三九已至,卻和暖如春化借,著一層夾襖步出監(jiān)牢的瞬間潜慎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铐炫,地道東北人垒手。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像驳遵,于是被迫代替她去往敵國(guó)和親淫奔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理堤结,服務(wù)發(fā)現(xiàn)唆迁,斷路器,智...
    卡卡羅2017閱讀 134,638評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,778評(píng)論 6 342
  • Chapter 8 BOM(瀏覽器對(duì)象模型) window 對(duì)象 在網(wǎng)頁(yè)中定義的任何一個(gè)對(duì)象竞穷、變量和函數(shù)唐责,都以 w...
    云之外閱讀 351評(píng)論 0 0
  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,741評(píng)論 1 92
  • 生活中我們總是不拘小節(jié)瘾带,認(rèn)為小節(jié)無(wú)關(guān)緊要鼠哥。 “下大雨和下毛毛雨,哪種天氣容易打濕人們的衣服看政?” “當(dāng)然是下大雨朴恳。”...
    木蘭1閱讀 291評(píng)論 0 1