2010-05-18 8 views

Respuesta

35

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.

+0

muchas gracias. Saludos, gre. – gre

+0

@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 –

+0

Esto no funciona Parece que funciona en IE10. –

12

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 
} 
+0

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

8

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); 
} 
Cuestiones relacionadas