Io voglio fare una roba molto simile a quella fatta in GMail, ovvero ho questo:
Stato 1: stato normale
Stato 2: quando un file e' trascinato dentro la finestra del browser
Stato 3: quando il file e' sopra l'area di drop.
Ho impostato i seguenti eventi:
Codice PHP:
function initFileDrop() {
document.addEventListener("dragleave", exitfrompage, false);
document.addEventListener("dragenter", enteronpage, false);
var dropbox;
dropbox = document.getElementById("file-drop");
dropbox.addEventListener("dragenter", dragenter, false);
dropbox.addEventListener("dragover", dragover, false);
dropbox.addEventListener("drop", drop, false);
dropbox.addEventListener("dragleave", dragleave, false);
}
Con Firefox funziona tutto bene, ma ad esempio con Chrome non proprio. Mettendo delle stampe di log ho notato che gli eventi di dragleave e dragenter sul document vengono chiamati ogni volta che il file che sta essendo trascinato entra o esce da altri elementi della pagina.
Questo causa un apri e chiudi continuo sul box di drop. Quindi ho bisogno di collegare l'evento che al momento e' collegato al document a qualcos'altro, ma cosa?
Con safari ho simili problemi, sembra che la gestione di quegli eventi non sia omogenea da parte dei browser. Eppure i signori di Google lo fanno...