2015-07-28 10 views
11

में आइटम ड्रैग + ड्रॉप करने पर इलेक्ट्रॉन ऐप को पुनर्निर्देशित करने से रोकें, मुझे अपने ऐप में drag+drop सुविधा नहीं चाहिए क्योंकि इसकी आवश्यकता नहीं है। तो मैं खिड़की की drag+drop सुविधा को पूरी तरह से हटाना चाहता हूं। अब तक छवियों को खींचते समय इलेक्ट्रॉन विंडो छवि पथ खोलती है। लिंक खींचते समय इलेक्ट्रॉन विंडो लिंक पर रीडायरेक्ट होती है।खिड़की

मैं इस बुला की कोशिश की है:

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

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

event.preventDefault()drop event पर काम किया जाना चाहिए था लेकिन ऐसा नहीं

इसके अलावा this की कोशिश की क्या किया:

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

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

भी विफल रहा है। इसे ठीक करने का कोई तरीका?

removeEventListener() रूप में अच्छी तरह विफल रही है

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

आप तत्व आप आईडी/वर्ग के माध्यम से करने के लिए घटना श्रोता अनुलग्न करना चाहते हैं को लक्षित नहीं किया जाना चाहिए? यदि आप ईवेंट को हटाना चाहते हैं तो भी आप 'removeEventlistener()' का उपयोग नहीं करना चाहेंगे? – NewToJS

+0

ड्रैग इवेंट के लिए उपयोग किया गया फ़ंक्शन, क्या यह बाहरी कार्य है? मेरा मानना ​​है कि RemoveEventListener केवल बाहरी फ़ंक्शन के लिए काम करेगा। यदि हां, तो क्या आप जानते हैं कि फ़ंक्शन कहलाता है। "तत्व ड्रैग करने योग्य बनाने के लिए प्रयोग किया जाता है" – NewToJS

+0

आप ईवेंट श्रोताओं को लक्षित करके फ़ंक्शन को रद्द करने का प्रयास कर रहे हैं ताकि मुझे कुछ ईवेंट श्रोता कुछ ऐसा करने के लिए फ़ंक्शन ट्रिगर कर सकें, इसलिए इसे रद्द/ओवरराइट करना चाहते हैं। मैं आपसे पूछ रहा हूं कि अगर आप एक बाहरी समारोह है या किसी ईवेंट श्रोता से जुड़ा हुआ है। – NewToJS

उत्तर

6

मिले विंडोज इलेक्ट्रॉन v2.3.1 Windows Electron v0.30.0 कोड के लिए एक ठीक दोनों dragover और drop के लिए श्रोताओं होना चाहिए।

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

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

इलेक्ट्रॉन अभी भी गिरा दिया फ़ाइल को अनुप्रेषित अगर आप केवल dragover या drop को सुनेगा।

चीयर्स!

+4

यह काम नहीं कर रहा है। मैं इलेक्ट्रॉन 1.2.5 का उपयोग कर रहा हूँ –

4

ES6 वाक्य रचना (इलेक्ट्रॉन 1.4.1 के तहत मेरे लिए काम कर) का उपयोग कर एक संक्षिप्त संस्करण

document.addEventListener('dragover', event => event.preventDefault()) 
document.addEventListener('drop', event => event.preventDefault()) 
संबंधित मुद्दे