Estoy intentando detectar el soporte de arrastrar y soltar HTML5 en JavaScript. Modernizr parece no manejar este caso de prueba.Detección de compatibilidad con arrastrar y soltar HTML5 en javascript
Respuesta
Usted puede hacer esto:
if('draggable' in document.createElement('span')) {
alert("Drag support detected");
}
You can see a quick demo test using the above check here.
También, there's a nice feature detection (not browser detection, yay!) list that's fairly well maintained here en caso de que esté buscando otras características de HTML5 también.
La detección de "arrastrable' en document.createElement ('período') parece una buena idea, pero en la práctica no funciona.
iOS afirma que arrastrable está en el elemento, pero no permite arrastrar y soltar (Referencia: Safari Web Content Guide: Handling Events)..
IE9 afirma que se pueda arrastrar no está en el elemento, pero permite arrastrar y soltar (Referencia: mi arrastre prueba HTML5 y caída de la IE.)
Modernizr es una mejor elección porque no confunde IE. Sin embargo, indica que HTML5 arrastrar y soltar está disponible en iOS.
Así es como detecto HTML5 arrastrar y soltar:
var iOS = !!navigator.userAgent.match('iPhone OS') || !!navigator.userAgent.match('iPad');
if (Modernizr.draganddrop && !iOS) {
HTML5 drag and drop solution
} else if (Modernizr.draganddrop && iOS) {
iOS drag and drop solution
} else {
non-HTML5 drag and drop solution
}
Puedo hablar sobre la parte IE de sus comentarios. Sí, IE9 e inferior pueden admitir arrastrar y soltar (de una manera hacky) con SPAN a través del método dragDrop(). Ver: http://stackoverflow.com/questions/5500615/internet-explorer-9-drag-and-drop-dnd). Sin embargo, no es compatible con arrastrar y soltar en la medida de HTML5. Y la pregunta era sobre el soporte de nivel HTML5. – Phil
Compruebe si "dragstart" y "caída" son compatibles, utilizando el método de "isEventSupported" en Modernizr. Ver How to detect browser support File API drag n drop.
Esta es la forma en que está implementado en Modernizr
function() {
var div = document.createElement('div');
return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
}
- 1. HTML5 Arrastrar y soltar nodos
- 2. Html5 Arrastrar y soltar en Android
- 3. Comportamiento de arrastrar y soltar HTML5
- 4. HTML5 Arrastrar y soltar eventos y compatibilidad con el navegador setDragImage
- 5. HTML5 arrastrar y soltar entre ventanas
- 6. Javascript Arrastrar y soltar cuadrícula
- 7. ¿Arrastrar y soltar polyfill?
- 8. Cambio del cursor del mouse para HTML5 Arrastrar y soltar archivos (GMail Arrastrar y soltar)
- 9. jQuery y HTML5 Arrastrar y soltar en la tabla (Programador)
- 10. Html5 arrastrar y soltar en el elemento svg
- 11. Crear plataforma de edición de arrastrar y soltar en HTML5
- 12. HTML5 arrastrar y soltar API en dispositivos de pantalla táctil
- 13. Arrastrar y soltar con columpio
- 14. Arrastrar y soltar con Ember.js
- 15. HTML5 Arrastrar y soltar: detectar carpetas en Safari (FileList, Archivo)
- 16. HTML5: ¿Arrastrar/soltar en el eje X y sin fundido?
- 17. Ember.js + HTML5 arrastrar y soltar el carrito de compras demo
- 18. Texto de arrastrar y soltar sobre DIV
- 19. Funcionalidad de arrastrar y soltar dentro del lienzo utilizando HTML5
- 20. HTML5 Arrastrar y soltar getData() solo funciona en el evento de soltar en Chrome?
- 21. Arrastrar y soltar en MVVM con ScatterView
- 22. Swing arrastrar y soltar
- 23. Compatibilidad con el navegador móvil HTML5
- 24. ItemsControl Arrastrar y soltar
- 25. ipad arrastrar y soltar
- 26. Pérdida de memoria con arrastrar y soltar
- 27. Arrastrar y soltar en Treeview
- 28. Arrastrar y soltar en MobileSafari?
- 29. Compatibilidad con HTML5 y RDFa
- 30. Silverlight 2 tutoriales de arrastrar y soltar
muchas gracias. Saludos, gre. – gre
@gre - Si eso resuelve tu problema, asegúrate de aceptar una respuesta haciendo clic en la marca de verificación de la izquierda, lo mismo ocurre con las respuestas futuras :) Si todavía te encuentras con algo, por favor comenta para que pueda ayudarte –
Esto no funciona Parece que funciona en IE10. –