7

我正在開發一個Chrome擴展,並有一個問題。我已經添加了一個項目到chrome的上下文菜單,並且想要在菜單項被點擊時打開一個彈出窗口。我的代碼如下所示:在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')}); 

但是,此代碼無法正常工作。在點擊上下文項目後,彈出窗口不會出現,而是在Chrome擴展首選項中刷新擴展之後。

在此先感謝!

+0

Yap。我正在使用版本2.但我怎麼能做到這一點呢?我沒有太多的學習JavaScript。 – 2012-07-31 14:59:05

+0

@chaohuang OPs代碼中沒有內聯事件處理程序。 – 2012-07-31 15:05:28

回答

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

立即調用popup函數,導致彈出窗口被打開。你必須傳遞一個函數的引用。爲了讓您的代碼工作,包裹在一個函數的函數調用:

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

window.open()可以用來創建一個彈出。另一種方法(只是爲了讓你知道它存在)是chrome.windows.create

+0

太棒了!它完美的作品。非常感謝! – 2012-07-31 15:45:08

相關問題