当我完成我的Chrome扩展程序时,我发现错误:
Uncaught TypeError: Cannot call method 'create' of undefined chrome-extension://dpfgkakomehcgdcnigflmkcfngeaamlc/js/background.js:46
injectScript startLiveReload init
我用它是这个
mainfest.json“background”:{ “scripts”:[“js / background.js”]}
和background.js之类的
var readMenuItemId = chrome.contextMenus.create({
"title" : "阅读模式",
"type" : "normal",
contexts : [ "selection" ],
documentUrlPatterns: ["http://*/*", "https://*/*"],
"onclick" : genericOnClick
});
我不知道哪里出错
答案 0 :(得分:7)
您需要在清单文件中添加权限contextMenus
才能使用此对象:
"permissions": [
"contextMenus"
],
答案 1 :(得分:1)
刚刚离开错误消息(我刚遇到类似的问题)。它说
无法调用未定义的方法'create'
如此简单地将代码包装在if-block中调用chrome.contextMenus.create函数的位置将阻止TypeError污染您的DevTools控制台:
if (chrome.contextMenus !== undefined) {
chrome.contextMenus.create({ /* etc */ });
}
此外,当窗口未完成加载时,也未定义chrome.contextMenus。因此,这样的修复可能更相关,而不是:
window.onload = () => {
chrome.contextMenus.create({ /* etc */ });
};