Ho associato eventi a elementi diversi e quando li trascino in tutti i browser, ad eccezione di Firefox, funziona come previsto. In Firefox, tuttavia, non funziona affatto. L'unico evento che spara è dragstart
e nessuno degli altri eventi viene attivato. Cosa sta succedendo?Perché HTML5 non funziona e trascina il lavoro in Firefox?
risposta
non sto usando jQuery, in modo da rimuovere la parte originalEvent e cambiato il formato di testo (o IE ebbe figli), e funziona:
event.dataTransfer.setData('text', 'anything');
Negli altri eventi assicuratevi di chiamare:
event.preventDefault();
Oppure salterà su anything.com su alcuni eventi.
con 'event.dataTransfer.setData ('text/html', 'anything')' non salterà su anything.com – pykiss
per chiunque altro stia combattendo con il drag and drop su FF, questo sarà probabilmente rilevante anche per te, sebbene non correlato a questo particolare problema: https: // StackOverflow.it/questions/11656061/event-clientx-mostra-come-0-in-firefox-per-dragend-evento –
Inoltre, è necessario accertarsi in particolare di chiamare preventDefault() sul gestore dell'evento di rilascio per impedire che provi a navigare. Non sono sicuro di cosa stesse pensando Mozilla quando hanno fatto questa terribile implementazione. –
Firefox richiede che un utente esegua la funzione dataTransfer.setData
nell'evento.
Per voi jQuery
utenti, questo significa che il seguente codice dovrebbe risolvere il problema:
function dragstartHandler(event){
event.originalEvent.dataTransfer.setData('text/plain', 'anything');
}
Eventi futuri sullo stesso trascinamento ora fuoco correttamente come previsto. Ovviamente è possibile sostituire gli argomenti setData
con altri dati utili.
Usa 'testo' invece di 'testo/semplice' se vuoi che funzioni in IE. Vedi http://stackoverflow.com/questions/12803235/drag-and-drop-not-working-in-ie-javascript-html5 – David
Funziona, ma ad oggi, la documentazione di MDN Drag dice ancora che un DragEvent ha un proprietà dataTransfer. Nessuna menzione di dover fare riferimento a originalEvent. –
@LexLindsey, l'originale è per jQuery come indicato nella risposta. – swiss196
È possibile utilizzare questo come riferimento per questa soluzione di domanda riguardante i reindirizzamenti che si verificano su Firefox.
È necessario impedire l'azione predefinita nel metodo di rilascio per risolvere questo problema.
function drop(e) {
if(e.preventDefault) { e.preventDefault(); }
if(e.stopPropagation) { e.stopPropagation(); }
//your code here
return false;
}
Ho ottenuto questa soluzione da this link.
FF ha da tempo problemi con il mangiare determinati eventi del mouse che hanno origine da elementi con overflow impostati su auto o scorrimento.
Nel mio caso, ho avuto una libreria ben utilizzata per il trascinamento della selezione che ha funzionato perfettamente negli esempi e nella mia app su ogni browser ma Firefox. Dopo aver scavato attraverso i biglietti relativi a questo, ho trovato una soluzione che ho pienamente credito per un collaboratore di questo biglietto https://bugzilla.mozilla.org/show_bug.cgi?id=339293
che è quello di impostare -moz-user-select: nessuno
sull'elemento scorrere essendo trascinato da Ha risolto il mio problema particolare.
- 1. html5 drawImage funziona in firefox, non cromato
- 2. HTML5 trascina e copia?
- 3. L'audio non funziona in html5
- 4. Perché .nernerText non funziona in Firefox?
- 5. trascina e rilascia cross frame usa html5
- 6. HTML5 Trascina e rilascia - Nessuna trasparenza?
- 7. Perché Tabindex non funziona con Firefox?
- 8. Perché LiveReload non funziona con Firefox e come risolverlo?
- 9. HTML5 draggable = 'false' non funziona nel browser Firefox
- 10. HTML5 Trascina e rilascia usando Selenium Webdriver per Ruby
- 11. Perché l'ennesimo tipo di lavoro non funziona?
- 12. Il video HTML5 non viene riprodotto in Firefox
- 13. drag and drop non funziona in Firefox
- 14. Il tag di ancoraggio non funziona in firefox e chrome
- 15. Il componente aggiuntivo firefox "cfx test" non funziona, perché?
- 16. ascolta tocca e trascina il valore e funziona di conseguenza
- 17. console.log in firefox non funziona?
- 18. .toLocaleDateString() Non funziona in Firefox
- 19. css: trascinare l'immagine non funziona in Firefox
- 20. Trascina e rilascia polyfill?
- 21. Firefox trascina div come se fosse un'immagine
- 22. .body.scrollHeight non funziona in Firefox
- 23. firefox e radialgradient (utilizzando la tela html5)
- 24. Come faccio a fare di scorrimento HTML5 (input type = 'range') Lavoro in Firefox
- 25. preventDefault non funziona su Firefox
- 26. Nice Trascina su una tela HTML5
- 27. video HTML5 in Safari non funziona
- 28. Font Awesome non funziona in Firefox e IE
- 29. Html5 Trascinare e rilasciare la posizione del mouse in Firefox
- 30. HTML5: trascina/rilascia sull'asse X e senza dissolvenza?
Esempio di codice e versione di Firefox per favore? –
Doveva pubblicare la risposta allo stesso tempo ma non ... non so perché. – RandallB