使用Duck-Typing 偵測Safari、Chrome、IE、Firefox 和Opera 瀏覽器
決定使用者的瀏覽器通常是重新導向使用者所必需的到特定於瀏覽器的擴充功能的適當下載連結。然而,依靠用戶代理字串進行瀏覽器檢測是不可靠的,因為它容易受到欺騙。
一種更可靠的方法,稱為鴨子打字,可用於根據瀏覽器的特定特徵來識別瀏覽器。以下是細分:
Opera 8.0 :
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
Firefox 1.0 :
var isFirefox = typeof InstallTrigger !== 'undefined';
Firefox 1.0 :
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'].pushNotification));var isFirefox = typeof InstallTrigger !== '未定義';
Safari 3.0 :
var isIE = /*@cc_on!@*/false || !!document.documentMode;]
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'] .pushNotification));
var isEdge = !isIE && !!window.StyleMedia;
var isIE = /*@cc_on!@*/false || !!document.documentMode;
var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
var isEdge = !isIE && !!window.StyleMedia;
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);
邊緣(基於chromium)檢測:
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'].pushNotification));
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);
閃爍引擎偵測:var isBlink = (isChrome || isOpera) && !!window.CSS;使用這些方法偵測到瀏覽器後,您可以將使用者重定向到適當的瀏覽器其特定於瀏覽器的擴充功能的下載連結。
但是,必須強調的是,您應該僅在必要時使用瀏覽器檢測,例如顯示特定於瀏覽器的安裝說明。作為一般最佳實踐,請盡可能注意特徵檢測。免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3