2015-09-17 10 views
22

Bir Elektron uygulaması yapıyorum ve belirli UI unsurlarını incelemek istiyorum. Chrome geliştirme araçlarını geliştirmeye açık hale getirdim, ancak istediğim, bir kullanıcı arayüzü öğesine sağ tıklayıp Google Chrome’da yapabildiğim gibi "Öğeyi Kontrol Et" i seçmektir. Şu anda, sağ tıklatma, kazan plakası Electron uygulamasında hiçbir şey yapmıyor. Bunu nasıl etkinleştirebilirim?Electron'da "Inspect Element" seçeneğine sahip bir Chrome'a ​​sağ tıklatma menüsü nasıl eklenir?

cevap

39

Elektron, win.inspectElement(x, y) adı verilen yerleşik bir işleve sahiptir.

Bu işlevi sağ tıklama bağlam menüsünde bir seçenek olarak eklemek, MenuItem ile bir Electron Menu oluşturarak mümkündür. JavaScript istemci aşağıdaki (aka oluşturucu süreci) Çağrı:

// Importing this adds a right-click menu with 'Inspect Element' option 
const remote = require('remote') 
const Menu = remote.require('menu') 
const MenuItem = remote.require('menu-item') 

let rightClickPosition = null 

const menu = new Menu() 
const menuItem = new MenuItem({ 
    label: 'Inspect Element', 
    click:() => { 
    remote.getCurrentWindow().inspectElement(rightClickPosition.x, rightClickPosition.y) 
    } 
}) 
menu.append(menuItem) 

window.addEventListener('contextmenu', (e) => { 
    e.preventDefault() 
    rightClickPosition = {x: e.x, y: e.y} 
    menu.popup(remote.getCurrentWindow()) 
}, false) 
+4

Birisi yararlı bulabilirse, cevabınıza göre github üzerinde bir repo oluşturdum. Burada bulabilirsiniz: [debug-menu] (https://github.com/parro-it/debug-menu) –

+2

Elektronun en yeni sürümünde (0.36.11) 'remote.getCurrentWindow()' i çağırmam gerekiyordu. Bunun için olay işleyicisinin içinde, currentWindow sabitinde önbelleğe almak yerine çalışmak. – enjalot

+0

@enjalot, teşekkürler, snippet'i güncelledim. –

İlgili konular