From 19aea6a64c9c56d588b1b934154933167fd9856a Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Sat, 19 Oct 2024 17:08:48 +0800 Subject: feat: add simple contextMenu and background script --- addon/background.js | 16 ++++++++++++++++ addon/index.mjs | 12 +++++++++++- addon/manifest.json | 8 ++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 addon/background.js (limited to 'addon') diff --git a/addon/background.js b/addon/background.js new file mode 100644 index 0000000..24771aa --- /dev/null +++ b/addon/background.js @@ -0,0 +1,16 @@ +console.log('background') + +browser.contextMenus.create( + { + id: 'map-inline', + title: 'MapInline', + contexts: ['page', 'selection'], + }, + () => void browser.runtime.lastError, +) + +browser.contextMenus.onClicked.addListener((info, tab) => { + if (info.menuItemId !== 'map-inline') return + + browser.tabs.sendMessage(tab.id, 'map-inline') +}) diff --git a/addon/index.mjs b/addon/index.mjs index 5776a18..b9fc349 100644 --- a/addon/index.mjs +++ b/addon/index.mjs @@ -1,3 +1,13 @@ +browser.runtime.onMessage.addListener((message, sender, sendResponse) => { + console.log('receive message', message) + sendResponse('received') + if (message === 'map-inline') { + alert('map') + return Promise.resolve('done') + } + return false +}) + const url = new URL(window.location) const use = url.searchParams.get('use') if (url.host === 'www.ptt.cc') { @@ -41,6 +51,6 @@ if (!document.querySelector('.Dumby')) { addBlocks, initialLayout: 'sticky', render: simpleRender, - autoMap: true, + autoMap: false, }) } diff --git a/addon/manifest.json b/addon/manifest.json index b95fd4b..c354f65 100644 --- a/addon/manifest.json +++ b/addon/manifest.json @@ -27,10 +27,18 @@ } ], + "background": { + "scripts": [ + "background.js" + ], + "persistent": false + }, + "permissions": [ "activeTab", "tabs", "scripting", + "contextMenus", "https://epsg.io/*", "https://cdn.jsdelivr.net/*" ] -- cgit v1.2.3-70-g09d2