w3schools replacestate event ejemplo javascript jquery iphone mobile unobtrusive-javascript

javascript - replacestate - ¿Cómo verificar el navegador para la compatibilidad con TouchStart usando JS/jQuery?



window history replacestate({} (4)

Hice una demostración completa que funciona en todos los navegadores con el código fuente completo de la solución de este problema: detectar dispositivos de pantalla táctil en Javascript .

En un intento de seguir las mejores prácticas, intentamos usar los eventos adecuados de JavaScript / jQuery según el dispositivo que esté utilizando. Por ejemplo, estamos creando un sitio móvil que tiene una etiqueta que tendrá un evento onclick o touch. En el caso de un iPhone, nos gustaría usar el evento "touchstart". Nos gustaría probar si su dispositivo es compatible con "touchstart" antes de vincular ese controlador al objeto. Si no es así, enlazaremos "onclick" en su lugar.

¿Cuál es la mejor manera de hacer esto?


Podrías verificar si typeof document.body.ontouchstart == "undefined" para volver a los eventos normales de dom


Puede detectar si el evento es compatible con:

if (''ontouchstart'' in document.documentElement) { //... }

Eche un vistazo a este artículo:

La función isEventSupported publicada allí es muy buena para detectar una amplia variedad de eventos y es un navegador cruzado.


Use este código para detectar si el dispositivo admite el toque.

También funciona para Windows 8 IE10 que utiliza el evento ''MSPointerDown'' en lugar de ''touchmove''

var supportsTouch = false; if (''ontouchstart'' in window) { //iOS & android supportsTouch = true; } else if(window.navigator.msPointerEnabled) { // Windows // To test for touch capable hardware if(navigator.msMaxTouchPoints) { supportsTouch = true; } }