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

相关问题