【发布时间】:2014-03-16 03:43:35
【问题描述】:
我正在为自己开发一个 Google Chrome 扩展程序。它在每个页面上的图像的右键单击上下文菜单中添加了一个额外的菜单项。
目前,我的扩展程序没有问题,但是当我检查控制台日志时,我看到了这个错误日志:
未捕获的类型错误:无法调用未定义的“创建”方法
就一行代码:
var id = chrome.contextMenus.create({
"title": title, "contexts": [context],
"onclick": genericOnClick
});
所以问题是,chrome.contextMenus 在这里出现 null。我发现它可能与 权限 有关,但我的 manifest.json 文件中有 contextmenus 权限。这是清单文件中的权限块:
"permissions": [
"contextMenus",
"notifications",
"<all_urls>"
],
除此之外,我的扩展程序可以正常工作。那么为什么我在日志上看到这个错误呢?如果chrome.contextMenus 为空,我是否应该简单地添加一个空检查以不执行任何操作?或者我应该等待它被初始化(我不知道如何做到这一点-不使用旧样式的while循环-)?
这是导致此错误的代码块:
var contexts = ["image"];
for (var i = 0; i < contexts.length; i++) {
var context = contexts[i];
var title = "Do something";
var id = chrome.contextMenus.create({
"title": title, "contexts": [context],
"onclick": genericOnClick
});
}
function genericOnClick(info, tab) {
// some stuff
}
我对 Javascript 不是很熟悉。我该如何解决这个问题?
提前致谢
【问题讨论】:
标签: javascript google-chrome google-chrome-extension google-chrome-devtools