7

Sto sviluppando un'estensione per Chrome e ho un problema. Ho aggiunto un elemento al menu di scelta rapida di Chrome e voglio aprire una finestra popup se si fa clic sulla voce di menu. Il mio codice è simile al seguente:finestra popup al menu di scelta rapida delle estensioni chrome '

function popup(url) { 
window.open(url, "window", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes"); 
} 

chrome.contextMenus.create({"title": "Tumblr", "contexts":["page","selection","link","editable","image","video","audio"], "onclick": popup('http://example.com')}); 

Ma questo codice non funziona come voglio. La finestra popup non appare dopo un clic sull'elemento di contesto, ma piuttosto dopo un aggiornamento dell'estensione nelle preferenze di estensione chrome.

Grazie in anticipo!

+0

Yap. Sto usando la versione 2. Ma come posso farlo diversamente? Non ho molta istruzione in javascript. –

+0

@chaohuang Non c'è alcun gestore di eventi in linea nel codice OPs. –

risposta

5
chrome.contextMenus.create({... "onclick": popup('http://example.com')}) 

invoca immediatamente la funzione popup, provocando l'apertura di un popup. Devi passare un riferimento a una funzione. Per ottenere il codice per lavorare, avvolgere la chiamata di funzione in una funzione:

chrome.contextMenus.create({ 
    "title": "Tumblr", 
    "contexts": ["page", "selection", "link", "editable", "image", "video", "audio"], 
    "onclick": function() { 
     popup('http://example.com'); 
    } 
}); 

window.open() può essere utilizzato per creare un popup. Un metodo alternativo (solo per farti sapere che esiste) è chrome.windows.create.

+0

Ottimo! Funziona perfettamente. Molte grazie! –

Problemi correlati