Prototype предлагает несколько флагов, которые вы можете проверить, чтобы понять, какой браузер работает. Помните, что гораздо лучше проверять функциональность, которую вы хотите использовать, а не проверять конкретный браузер.
Вот часть браузера и определения возможностей prototype.js
, которая в данный момент находится в дереве исходных текстов:
var Prototype = {
Browser: {
IE: !!(window.attachEvent &&
navigator.userAgent.indexOf('Opera') === -1),
Opera: navigator.userAgent.indexOf('Opera') > -1,
WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&
navigator.userAgent.indexOf('KHTML') === -1,
MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
},
BrowserFeatures: {
XPath: !!document.evaluate,
SelectorsAPI: !!document.querySelector,
ElementExtensions: !!window.HTMLElement,
SpecificElementExtensions:
document.createElement('div')['__proto__'] &&
document.createElement('div')['__proto__'] !==
document.createElement('form')['__proto__']
},
}
Таким образом, вы можете проверить, является ли текущий браузер IE, изучив значение Prototype.Browser.IE
или, в качестве альтернативы, быть более совместимым с будущим и проверить наличие определенной функции, например XPath, с Prototype.BrowserFeatures.XPath
.