【问题标题】:popup window at chrome extensions' context menuchrome 扩展的上下文菜单中的弹出窗口
【发布时间】:2012-07-31 14:28:59
【问题描述】:

我正在开发 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 扩展首选项中刷新扩展后出现。

提前致谢!

【问题讨论】:

  • 是的。我正在使用第 2 版。但我怎么能做到这一点?我在 javascript 方面没有受过多少教育。
  • @chaohuang OPs 代码中没有内联事件处理程序。

标签: javascript google-chrome-extension contextmenu popupwindow


【解决方案1】:
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

【讨论】:

  • 我在 chrome 扩展中将您的代码添加到 main.js,但在浏览器页面上下文菜单中没有看到任何新项目。我错过了什么?
猜你喜欢
  • 1970-01-01
  • 2016-01-26
  • 2011-09-27
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
  • 2012-11-12
  • 2012-05-07
  • 2011-10-31
相关资源
最近更新 更多