使用 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';
Safari 3.0 :
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'].pushNotification));
Internet Explorer 6-11:
var isIE = /*@cc_on!@*/false || !!document.documentMode;
Edge 20 :
var isEdge = !isIE && !!window.StyleMedia;
Chrome 1 - 79:
var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
边缘(基于 chromium)检测:
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);
闪烁引擎检测:
var isBlink = (isChrome || isOpera) && !!window.CSS;
使用这些方法检测到浏览器后,您可以将用户重定向到适当的浏览器其特定于浏览器的扩展程序的下载链接。
但是,必须强调的是,您应该仅在必要时使用浏览器检测,例如显示特定于浏览器的安装说明。作为一般最佳实践,请尽可能关注特征检测。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3