Sto provando a rilevare il supporto Drag & Drop HTML5 in JavaScript. Modernizr sembra non gestire questo caso.Rilevamento del supporto Drag & Drop HTML5 in javascript
risposta
Si può fare questo:
if('draggable' in document.createElement('span')) {
alert("Drag support detected");
}
You can see a quick demo test using the above check here.
Inoltre, there's a nice feature detection (not browser detection, yay!) list that's fairly well maintained here nel caso si stia cercando anche altre funzionalità HTML5.
Rilevamento "trascinabili' in document.createElement ('arco') sembra una buona idea, ma in pratica non funziona.
iOS sostiene che trascinabile è nell'elemento ma non consente il drag and drop (Riferimento: Safari Web Content Guide: Handling Events)..
IE9 sostiene che draggable nON è nell'elemento, ma non permette il drag and drop (Riferimento: la mia resistenza test HTML5 e calo di IE.)
Modernizr è una migliore scelta perché non confonde IE. Tuttavia, afferma che il drag-and-drop HTML5 è disponibile su iOS.
Ecco come rilevo HTML5 drag and drop:
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
}
Posso parlare della parte IE dei tuoi commenti. Sì, IE9 e versioni inferiori supportano il trascinamento della selezione (in modo hacky) con SPAN tramite il metodo dragDrop(). Vedi: http://stackoverflow.com/questions/5500615/internet-explorer-9-drag-and-drop-dnd). Tuttavia, non supporta il trascinamento dell'estensione di HTML5. E la domanda riguardava il supporto a livello HTML5. – Phil
Verificare se "dragstart" e "goccia" sono supportati, utilizzando il metodo del "isEventSupported" in Modernizr. Vedi How to detect browser support File API drag n drop.
Questo è come è implementato in Modernizr
function() {
var div = document.createElement('div');
return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
}
Grazie mille. Saluti, gre. – gre
@gre - Se questo risolve il tuo problema, assicurati di accettare una risposta facendo clic sul segno di spunta a sinistra, lo stesso vale per le risposte future :) Se stai ancora imbattendo in qualcosa per favore commenta così posso aiutare ulteriormente –
Questo doesn ' Sembra che funzioni in IE10. –