(arrastrar y soltar) archivos en Firefox

Porque una demo vale 72.814 palabras: http://jsfiddle.net/rudiedirkx/J575b/3/show/

Esa es la demostración más simple. Tres eventos: arrastrar, arrastrar, dejar y soltar. over y leave funciona como se esperaba (la clase se agrega y elimina). ¡La gota sin embargo no lo hace!

Al igual que IE, abre el archivo soltado en la ventana. En Chrome, el evento se cancela y el archivo arrastrado se suelta (y se ignora en este caso).

¿¡El evento de caída ni siquiera se activa en Firefox!?

¿Qué está sucediendo? Pensé que esto funcionaba... (Funciona en Chrome. No funciona en Opera 11.64).

EDITAR

fijo, gracias a Adriano: http://jsfiddle.net/rudiedirkx/J575b/5/show/

preguntado el 22 de mayo de 12 a las 15:05

1 Respuestas

cambiar su ondragover controlador de esto:

drop.ondragover = function() {
    this.classList.add('over');
    return false;
};

Nota la return false línea, de Mozilla.org necesitas preventDefault() o devolver un valor falso de la función para permitir la caída.

contestado el 22 de mayo de 12 a las 15:05

Guau. Eso fue tan simple. Yo leo developer.mozilla.org/en/DragDrop/Arrastrar_y_soltar pero no el que sugeriste. Estúpido Google ;) - Rudie

Gracias, me hizo enojar este mediodía también :). ondrop ni siquiera fue despedido hasta que reemplacé ondragenter con ondragover. ¿Cuál es la diferencia entre estos eventos en FF? Ambos funcionan bien en Chrome. - tien-do

@Tiendq arrastrar y soltar necesita "confirmación" de que el objeto que está arrastrando (y se soltará) se puede manejar. Bueno, la API no es lo mejor que puede ver en una especificación (eche un vistazo a este artículo, un poco viejo pero "explica" el problema). - Adriano Repetti

@Adriano Gracias por el artículo. - tien-do

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.