ManifestV3 后台服务工作者中未显示“alert”

tli*_*etz 7 javascript google-chrome-extension

我正在尝试制作一个 Chrome 扩展程序,在选项卡中提醒您当前正在移动或突出显示。我尝试阅读 chrome 迁移到 V.3 文档并提出了以下代码,但是警报从未出现。有人知道我需要更改或添加什么吗?

\n
// manifest.json\n\n{\n    "manifest_version": 3,\n    "name": "Alert",\n    "version": "0.1",\n    "description": "alerts you when doing tab functions",\n    "permissions": ["tabs", "activeTab"],\n    "host_permissions": ["<all_urls>"],\n    "background": {\n        "service_worker": "background.js"\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n
//background.js\n\nchrome.tabs.onMoved.addListener(function () {\n    alert("You moved this tab");\n});\n\nchrome.tabs.onHighlighted.addListener(function () {\n    alert("You highlighted this tab");\n});\n
Run Code Online (Sandbox Code Playgroud)\n

工作目录:

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 background.js\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 manifest.json\n
Run Code Online (Sandbox Code Playgroud)\n

小智 7

alert()方法不能在浏览器环境之外使用,可以使用console.warn()orconsole.error()代替。但如果您想向扩展用户显示错误消息,这不是一个好的解决方案,因为他们永远不会打开控制台。

如果您想要更用户友好的方法,请使用以下命令:

chrome.notifications.create({
type: 'basic',
iconUrl: '/images/image_if_any.png',
title: `Notification title`,
message: "Your message",
priority: 1
});
Run Code Online (Sandbox Code Playgroud)

还要将“通知”添加到manifest.json 文件中的“权限”:

"permissions": [..., "notifications"]
Run Code Online (Sandbox Code Playgroud)