Prototype ofrece algunas banderas se puede comprobar para tener una idea en cuanto a qué navegador se está ejecutando. Tenga en cuenta que es una práctica mucho mejor comprobar la funcionalidad que desea utilizar en lugar de buscar un navegador en particular.
Aquí es la parte en navegador y la función de detección de prototype.js
actualmente en el árbol de fuentes:
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__']
},
}
Así se puede comprobar si el navegador actual es IE investigando el valor de Prototype.Browser.IE
, o alternativamente, más compatible con el futuro y verifique una característica particular como XPath con Prototype.BrowserFeatures.XPath
.
Y, aparte, entiendo los inconvenientes de la codificación hacia un navegador específico y su versión, en contraposición a la codificación hacia 'características' disponibles. – EvilSyn
Más fregado, y veo Prototype.Browser que me dará boolean en IE o Gecko, etc. Así que eso ayuda ... Sería bueno si también tuviera la versión allí, pero supongo que puedo escribir un JS antiguo simple para eso . – EvilSyn