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"exitfrompagefalse);
    
document.addEventListener("dragenter"enteronpagefalse);
    
    var 
dropbox;   
    
dropbox document.getElementById("file-drop");
    
dropbox.addEventListener("dragenter"dragenterfalse);  
    
dropbox.addEventListener("dragover"dragoverfalse);  
    
dropbox.addEventListener("drop"dropfalse);
    
dropbox.addEventListener("dragleave"dragleavefalse);

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...