2015-07-28 20 views
11

Tôi không muốn có một tính năng drag+drop trong ứng dụng của tôi vì không có nhu cầu cho nó. Vì vậy, tôi muốn xóa hoàn toàn tính năng drag+drop của cửa sổ. Cho đến nay khi kéo hình ảnh, cửa sổ Electron sẽ mở đường dẫn hình ảnh. Khi kéo liên kết, cửa sổ Electron sẽ chuyển hướng đến liên kết.Ngăn chặn Electron ứng dụng từ chuyển hướng khi kéo + thả các mục trong cửa sổ

Tôi đã cố gắng kêu gọi này:

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

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

event.preventDefault() trên drop event nên đã làm việc nhưng nó đã không

Cũng cố gắng this:

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

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

Cũng thất bại. Bất kỳ ý tưởng làm thế nào để sửa lỗi này?

removeEventListener() thất bại cũng

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

nên không được nhắm mục tiêu các yếu tố bạn muốn đính kèm người nghe sự kiện để thông qua id/lớp học? Bạn cũng sẽ không muốn sử dụng 'removeEventlistener()' vì bạn muốn xóa sự kiện này? – NewToJS

+0

Chức năng được sử dụng cho sự kiện kéo, đó có phải là chức năng bên ngoài không? Tôi tin rằng removeEventListener sẽ chỉ hoạt động cho chức năng bên ngoài. Nếu vậy, bạn có biết chức năng này được gọi là gì không. "Cái được sử dụng để làm cho phần tử có thể kéo được" – NewToJS

+0

Bạn đang cố hủy một hàm bằng cách nhắm mục tiêu trình lắng nghe sự kiện để cho tôi biết một số trình xử lý sự kiện kích hoạt một chức năng để làm điều gì đó, do đó muốn hủy/ghi đè lên nó. Tôi hỏi bạn nếu bạn có chức năng là một chức năng bên ngoài hoặc gắn liền với một người nghe sự kiện. – NewToJS

Trả lời

6

Tìm thấy một sửa chữa cho của Windows Electron v2.3.1 Windows Electron v0.30.0 mã nên có người nghe cho cả dragoverdrop.

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

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

Electron vẫn sẽ chuyển hướng đến các tập tin giảm nếu bạn chỉ nghe dragover hoặc drop.

Chúc mừng!

+4

nó không hoạt động. Tôi đang sử dụng Electron 1.2.5 –

4

Một phiên bản ngắn gọn sử dụng ES6 cú pháp (làm việc cho tôi theo Electron 1.4.1)

document.addEventListener('dragover', event => event.preventDefault()) 
document.addEventListener('drop', event => event.preventDefault()) 
Các vấn đề liên quan