2016-04-03 103 views
0

我正在創建網頁,並且正在使用此代碼來檢測瀏覽器特定內容,例如版本和名稱。使用javascript進行瀏覽器識別

navigator.sayswho= (function(){ 
    var ua= navigator.userAgent, tem, 
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 
    if(/trident/i.test(M[1])){ 
     tem= /\brv[ :]+(\d+)/g.exec(ua) || []; 
     return 'IE '+(tem[1] || ''); 
    } 
    if(M[1]=== 'Chrome'){ 
     tem= ua.match(/\b(OPR|Edge)\/(\d+)/); 
     if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera'); 
    } 
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?']; 
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]); 
    return M.join(' '); 
})(); 

代碼在這裏找到:How can you detect the version of a browser?

我想知道這是什麼一樣引擎蓋下。 mu文件系統中的哪個文件會打開javascript以讀取瀏覽器細節(如果用戶使用Chrome)?

+1

該腳本不會打開任何文件。它檢索存儲在瀏覽器自身設置的['navigator'全局對象](https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator)屬性中的值。 (儘管至少[使用其中一個屬性](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/userAgent)不再有保證)。 –

+0

哦我懂了。這是一個java腳本所採用的方法。現在我正想着另一種方式......如何在不使用javascript(互聯網)的情況下找出我使用的瀏覽器。我正在尋找一個初始化導航器對象的文件。當然,必須有一些文件在文件系統上初始化導航器對象,以便瀏覽器知道它的名字是什麼。 – sanjihan

+0

這將取決於瀏覽器以及它的構建和配置方式。您可以在系統的系統(例如註冊表)中或在瀏覽器可執行文件('.exe'等)附近的配置文件中找到該設置。這些值也可能是編譯到可執行文件本身的常量。 –

回答

1

navigator屬性位於窗口界面上,是瀏覽器中的標準只讀界面。

在規範到這裏看看:https://www.w3.org/TR/html5/webappapis.html#navigator

窗口界面的導航屬性必須返回導航界面,它代表了用戶代理的身份和狀態(客戶端)的情況下,並允許網頁將自己註冊爲潛在的協議和內容處理程序: