2009-08-24 105 views
1

我是做對W3Schools的的browser recognition tutorial,我發現,使用Firefox和谷歌瀏覽器時,我收到的Netscape 5作爲我的結果。我只是好奇這是爲什麼。任何人都在意向我解釋?的JavaScript瀏覽器識別

+6

將w3schools用作關於web技術信息的任何形式的源代碼不是一個好主意。它非常嚴重過時。另外,除非絕對沒有別的辦法來做你想做的事情,否則瀏覽器嗅探並不是一個好主意。特徵嗅探更好。 – Breton 2009-08-24 05:11:37

回答

4

我覺得這篇文章對Browser Object Model基本上回答你的問題。基本上,navigator對象是沒用的,並且沒有人需要更新它。 Firefox的根源在Netscape中,而這些屬性從未被更新過。 (注意:我對感興趣,爲什麼他們從未更新過,但我還沒有找到它)。

您在w3c中關注的教程已過時。它使用了一種非常古老的瀏覽器檢測方法,這種方法根本無法工作。 A better version is here,但即使這種方法不再推薦。所有這些屬性都可能是欺騙性的,而且非常不可靠。

目前,識別瀏覽器的一般方法是一種名爲object detection的技術,該技術主要針對瀏覽器的功能,並基於它可以執行的操作或可能存在的特定對象來識別它。

它的利益需要注意的是現代化的圖書館,如MooTools的和JQuery讓瀏覽器識別做這一切的目的和特徵檢測你很瑣碎,乾淨。 MooTools有一個Browser對象,而JQuery有jQuery.browser,現在已棄用jQuery.support

+0

@Zombat:嘿,你打了幾秒鐘。即使我建議quirksmode網站提供的版本。 :) – kayteen 2009-08-24 05:15:47

+0

@ kayteen - 哈,是的,我正在等待某人發佈這些內容,並且我對'navigator'從未更新過的具體原因感興趣,所以我開始尋找自己並且寫了一個答案。 – zombat 2009-08-24 05:18:47