使用 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;
使用这些方法检测到浏览器后,您可以重定向用户到其特定于浏览器的扩展程序的适当下载链接。
但是,需要强调的是,您应该仅在必要时使用浏览器检测,例如显示特定于浏览器的安装说明。作为一般最佳实践,请尽可能关注特征检测。
以上是如何使用 Duck Typing 可靠地检测 Safari、Chrome、Firefox、IE 和 Opera 浏览器?的详细内容。更多信息请关注PHP中文网其他相关文章!