2015-07-28 9 views
11

Non voglio una funzione drag+drop nella mia app poiché non ce n'è bisogno. Quindi voglio rimuovere completamente la funzione drag+drop della finestra. Finora, trascinando le immagini, la finestra dell'Elettrone apre il percorso dell'immagine. Durante il trascinamento dei collegamenti la finestra di Electron reindirizza al collegamento.Impedire all'app Electron di reindirizzare quando si trascinano elementi nella finestra

Ho provato a chiamare questo:

document.addEventListener('dragstart',function(event){ 
    event.preventDefault(); 
    return false; 
    },true); 

    document.addEventListener('drop',function(event){ 
    event.preventDefault(); 
    return false; 
    },true); 

event.preventDefault() sul drop event dovrebbe hanno lavorato, ma non ha fatto

provato anche this:

BrowserWindow.on('will-navigate',function(event){ 
    event.preventDefault(); 
    return false; 
    }); 

    BrowserWindow.webContents.on('will-navigate',function(event){ 
    event.preventDefault(); 
    return false; 
    }); 

fallito anche. Qualche idea su come risolvere questo problema?

removeEventListener() fallito così

var listener = function (event) { 
    console.log('foo'); 
    }; 
    document.removeEventListener('drop',listener,false); 
+0

Non dovresti essere designando l'elemento che si desidera allegare il listener di eventi per via id/class? Inoltre non vorresti usare 'removeEventlistener()' dal momento che vuoi rimuovere l'evento? – NewToJS

+0

La funzione utilizzata per l'evento di trascinamento, è una funzione esterna? Credo che removeEventListener funzionerà solo per la funzione esterna. Se è così, sai come viene chiamata la funzione. "Quello usato per rendere trascinabile l'elemento" – NewToJS

+0

Stai provando ad annullare una funzione indirizzando i listener di eventi in modo che mi venga detto che alcuni listener di eventi attivano una funzione per fare qualcosa, quindi vogliono annullarla/sovrascriverla. Ti sto chiedendo se tu se la funzione è una funzione esterna o allegata a un listener di eventi. – NewToJS

risposta

6

trovato una correzione per di Windows Electron v2.3.1 Windows Electron v0.30.0 il codice dovrebbe avere ascoltatori sia per dragover E drop.

document.addEventListener('dragover',function(event){ 
    event.preventDefault(); 
    return false; 
    },false); 

    document.addEventListener('drop',function(event){ 
    event.preventDefault(); 
    return false; 
    },false); 

Electron sarà ancora reindirizzare il file rilasciato se si ascolta solo per dragover o drop.

Cheers!

+4

non funziona. Sto usando Electron 1.2.5 –

4

Una versione concisa utilizzando la sintassi ES6 (che lavorano per me sotto Electron 1.4.1)

document.addEventListener('dragover', event => event.preventDefault()) 
document.addEventListener('drop', event => event.preventDefault())