2015-07-28 10 views
11

Nie chcę używać funkcji drag+drop w mojej aplikacji, ponieważ nie jest ona potrzebna. Tak więc chcę całkowicie usunąć funkcję okna drag+drop. Do tej pory podczas przeciągania obrazów okno elektronowe otwiera ścieżkę obrazu. Podczas przeciągania linków okno Electron przekierowuje do łącza.Nie zezwalaj na przekierowanie aplikacji elektronowej podczas przeciągania i upuszczania elementów w oknie

Próbowałem nazywając to:

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

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

event.preventDefault() na drop event powinny pracowali ale nie

próbowali także this:

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

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

również nie. Wszelkie pomysły, jak to naprawić?

removeEventListener() zawiodły także

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

nie powinno być skierowane do elementu, który chcesz dołączyć do słuchacza zdarzeń poprzez id/klasy? Czy nie chciałbyś użyć 'removeEventlistener()', ponieważ chcesz usunąć wydarzenie? – NewToJS

+0

Funkcja używana dla zdarzenia przeciągania, czy jest to funkcja zewnętrzna? Wierzę, że removeEventListener będzie działać tylko dla funkcji zewnętrznej. Jeśli tak, czy wiesz, jaka funkcja jest wywoływana. "Ten, który był użyty do przeciągnięcia elementu" – NewToJS

+0

Próbujesz anulować funkcję, kierując na detektory zdarzeń, co oznacza, że ​​jakiś detektor zdarzeń uruchamia funkcję, aby coś zrobić, a zatem chce anulować/zastąpić tę funkcję. Pytam Cię, jeśli funkcja jest funkcją zewnętrzną lub dołączona do detektora zdarzeń. – NewToJS

Odpowiedz

6

Znaleziony poprawkę Okna Elektronowej v2.3.1 Windows Electron v0.30.0 kod powinien mieć słuchaczy zarówno dragover I drop.

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

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

Electron nadal będzie przekierować do pliku spadła jeśli tylko słuchać dragover lub drop.

Pozdrawiam!

+4

to nie działa. Używam Electron 1.2.5 –

4

Zwięzły wersja użyciu ES6 składni (działa na mnie pod Electron 1.4.1)

document.addEventListener('dragover', event => event.preventDefault()) 
document.addEventListener('drop', event => event.preventDefault()) 
Powiązane problemy