LEM*_*EMO 8 javascript google-chrome-extension google-chrome-devtools
我正在构建一个 chrome 扩展,我使用此代码在新窗口中打开弹出窗口。(使用清单v3)今天突然停止工作。
未捕获的类型错误:无法读取未定义的属性(读取“onClicked”)昨天它工作得很好,并且与 chrome 扩展文档相对应。有人知道可能是什么问题吗?
这是我的代码:
chrome.action.onClicked.addListener(tab => {
chrome.windows.create({
url: chrome.runtime.getURL("popup.html"),
type: "popup",
height: 800,
width: 516
}, function(win) {
});
});
Run Code Online (Sandbox Code Playgroud)
Ral*_* L. 11
这个问题已经得到解答,但我想发布一个完整的示例,因为我找不到同时具有扩展代码和相应的 manifest.json 的帖子。
这是使用 Manifest V3 的完整有效示例。
// File: manifest.json //
{
"manifest_version": 3,
"name": "My extension",
"description": "Extension that extends things",
"author": "Me",
"version": "0.1",
"content_scripts": [
{
"matches": [
"https://*"
],
"js": ["content.js"]
}
],
"icons": { "48": "icons/icon128.jpg",
"128": "icons/icon512.jpg"},
"background": {
"service_worker": "background.js"
},
"action": {},
"permissions": [
"storage",
"downloads",
"tabs"
]
}
Run Code Online (Sandbox Code Playgroud)
// File: background.js //
// Called when the user clicks on the browser action.
chrome.action.onClicked.addListener(tab => {
// Send a message to the active tab
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var activeTab = tabs[0];
chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"});
});
});
Run Code Online (Sandbox Code Playgroud)
(显然,在复制 .json 文件之前删除注释,并适当调整扩展程序的权限。)
请注意,如果您使用的 Chrome 版本低于 Chrome 93,则您的manifest.json 和background.js 必须位于同一目录中。
| 归档时间: |
|
| 查看次数: |
11563 次 |
| 最近记录: |