add context menus

This commit is contained in:
Gabe Yuan
2023-11-21 11:20:05 +08:00
parent df4cfc0fbc
commit 433e811821
12 changed files with 156 additions and 29 deletions

View File

@@ -7,9 +7,11 @@ import {
MSG_OPEN_OPTIONS,
MSG_SAVE_RULE,
MSG_TRANS_TOGGLE_STYLE,
MSG_TRANSLATE_SELECTED,
CMD_TOGGLE_TRANSLATE,
CMD_TOGGLE_STYLE,
CMD_OPEN_OPTIONS,
CMD_TRANSLATE_SELECTED,
} from "./config";
import { getSettingWithDefault, tryInitDefaultData } from "./libs/storage";
import { trySyncSettingAndRules } from "./libs/sync";
@@ -26,14 +28,34 @@ globalThis.ContextType = "BACKGROUND";
*/
browser.runtime.onInstalled.addListener(() => {
tryInitDefaultData();
// 右键菜单
browser.contextMenus.create({
id: CMD_TRANSLATE_SELECTED,
title: browser.i18n.getMessage("translate_selected"),
contexts: ["selection"],
});
browser.contextMenus.create({
id: CMD_TOGGLE_TRANSLATE,
title: browser.i18n.getMessage("toggle_translate"),
contexts: ["all"],
});
browser.contextMenus.create({
id: CMD_TOGGLE_STYLE,
title: browser.i18n.getMessage("toggle_style"),
contexts: ["all"],
});
browser.contextMenus.create({
id: CMD_OPEN_OPTIONS,
title: browser.i18n.getMessage("open_options"),
contexts: ["all"],
});
});
/**
* 浏览器启动
*/
browser.runtime.onStartup.addListener(async () => {
console.log("browser onStartup");
// 同步数据
await trySyncSettingAndRules();
@@ -103,3 +125,21 @@ browser.commands.onCommand.addListener((command) => {
default:
}
});
browser.contextMenus.onClicked.addListener(({ menuItemId }) => {
switch (menuItemId) {
case CMD_TOGGLE_TRANSLATE:
sendTabMsg(MSG_TRANS_TOGGLE);
break;
case CMD_TOGGLE_STYLE:
sendTabMsg(MSG_TRANS_TOGGLE_STYLE);
break;
case CMD_TRANSLATE_SELECTED:
sendTabMsg(MSG_TRANSLATE_SELECTED);
break;
case CMD_OPEN_OPTIONS:
browser.runtime.openOptionsPage();
break;
default:
}
});