google - activar javascript gratis
Cómo detectar el navegador Chrome y safari(webkit) (7)
Estoy tratando de detectar el navegador Chrome y Safari usando jquery o javascript.
Use jQuery.browser
Pensé que no debíamos usar jQuery.browser.
Eso es porque detectar navegadores es una mala idea. Todavía es la mejor manera de detectar el navegador (cuando jQuery está involucrado) si realmente tiene la intención de hacerlo.
Estoy tratando de detectar el navegador Chrome y Safari usando jquery o javascript. Pensé que no debíamos usar jQuery.browser. ¿Hay alguna sugerencia aquí? ¡Muchas gracias!
La mejor manera en este momento sería:
// var isWebkit = ''webkitRequestAnimationFrame'' in window; // deprecated
var isWebkit = ''WebkitAppearance'' in document.documentElement.style
Tan simple, pero tan efectivo.
Esperaría que este nombre prefijo se quedara por bastante tiempo, así que diría que es seguro usarlo durante al menos un año o dos. El equipo de Chrome es notoriamente lento en hacer cambios, aunque hay rumores de que están fabricando un nuevo motor, un tenedor de webkit
que se le dará su propio nombre, pero esos problemas son para el futuro.
Por cierto, la mayoría de las respuestas aquí son obsoletas, no hay más jQuery.browser
, y ¿por qué alguien usaría jQuery
o husmearía al User Agent
?
En lugar de detectar un navegador, debería detectar una característica (ya sea compatible o no). Esto es lo que hace Modernizr .
Por supuesto, hay casos en los que aún debe verificar el navegador porque necesita solucionar un problema y no detectar una característica. Verificación específica de WebKit
que no usa jQuery $.browser
:
var isWebKit = !!window.webkitURL;
Como algunos de los comentarios sugeridos, el enfoque anterior no funciona para las versiones anteriores de Safari. Actualización con otro enfoque sugerido en comentarios y por otra respuesta:
var isWebKit = ''WebkitAppearance'' in document.documentElement.style;
jQuery proporciona eso:
if ($.browser.webkit){
...
}
Lectura adicional en api.jquery.com/jQuery.browser
Actualizar
Como se señaló en otras respuestas / comentarios, siempre es mejor verificar el soporte de funciones que la información del agente. jQuery también proporciona un objeto para eso: jQuery.support
. Verifique la documentación para ver las características detalladas de la lista para verificar.
puede usar este fragmento jQuery minimizado para detectar si su usuario está viendo con un dispositivo móvil. Si necesita probar un dispositivo específico, he incluido una colección de fragmentos de JavaScript debajo que pueden usarse para detectar varios dispositivos móviles tales como iPad, iPhone, iPod, iDevice, Andriod, Blackberry, WebOs y Windows Phone.
/**
* jQuery.browser.mobile (http://detectmobilebrowser.com/)
* jQuery.browser.mobile will be true if the browser is a mobile device
**/
(function(a){jQuery.browser.mobile=/android.+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|symbian|treo|up.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas-|your|zeto|zte-/i.test(a.substr(0,4))})(navigator.userAgent||navigator.vendor||window.opera);
Ejemplo de uso:
if(jQuery.browser.mobile)
{
console.log(‘You are using a mobile device!’);
}
else
{
console.log(‘You are not using a mobile device!’);
}
Detectar iPad
var isiPad = /ipad/i.test(navigator.userAgent.toLowerCase());
if (isiPad)
{
…
}
Detecta iPhone
var isiPhone = /iphone/i.test(navigator.userAgent.toLowerCase());
if (isiPhone)
{
…
}
Detectar iPod
var isiPod = /ipod/i.test(navigator.userAgent.toLowerCase());
if (isiPod)
{
…
}
Detectar iDevice
var isiDevice = /ipad|iphone|ipod/i.test(navigator.userAgent.toLowerCase());
if (isiDevice)
{
…
}
Detectar Andriod
var isAndroid = /android/i.test(navigator.userAgent.toLowerCase());
if (isAndroid)
{
…
}
Detecta Blackberry
var isBlackBerry = /blackberry/i.test(navigator.userAgent.toLowerCase());
if (isBlackBerry)
{
…
}
Detectar WebOs
var isWebOS = /webos/i.test(navigator.userAgent.toLowerCase());
if (isWebOS)
{
…
}
Detecta el teléfono de Windows
var isWindowsPhone = /windows phone/i.test(navigator.userAgent.toLowerCase());
if (isWindowsPhone)
{
…
}
/WebKit/.test(navigator.userAgent)
- eso es todo.
Si no quiere usar $.browser
, eche un vistazo al caso 1 , de lo contrario tal vez el caso 2 y 3 lo ayuden a mantenerse informado porque no se recomienda usar $.browser
(el agente de usuario puede ser falsificado usando esto) . Una alternativa puede ser el uso de jQuery.support
que detectará el soporte de características y no la información del agente.
Pero...
Si insiste en obtener el tipo de navegador (solo Chrome o Safari) pero no usa $.browser
, el caso 1 es lo que está buscando ...
Esto se ajusta a su requerimiento:
Caso 1: (No jQuery y no $ .browser, solo javascript)
Demostración en vivo: http://jsfiddle.net/oscarj24/DJ349/
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
if (isChrome) alert("You are using Chrome!");
if (isSafari) alert("You are using Safari!");
Estos casos los utilicé antes y funcionaron bien, pero no son recomendables ...
Caso 2: (Usando jQuery y $ .browser, este es complicado)
Demostración en vivo: http://jsfiddle.net/oscarj24/gNENk/
$(document).ready(function(){
/* Get browser */
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
/* Detect Chrome */
if($.browser.chrome){
/* Do something for Chrome at this point */
/* Finally, if it is Chrome then jQuery thinks it''s
Safari so we have to tell it isn''t */
$.browser.safari = false;
}
/* Detect Safari */
if($.browser.safari){
/* Do something for Safari */
}
});
Caso 3: (Usando jQuery y $ .browser, solución "elegante")
Demostración en vivo: http://jsfiddle.net/oscarj24/uJuEU/
$.browser.chrome = $.browser.webkit && !!window.chrome;
$.browser.safari = $.browser.webkit && !window.chrome;
if ($.browser.chrome) alert("You are using Chrome!");
if ($.browser.safari) alert("You are using Safari!");