diff options
-rw-r--r-- | addon/index.mjs | 48 |
1 files changed, 19 insertions, 29 deletions
diff --git a/addon/index.mjs b/addon/index.mjs index e2fede3..057cd90 100644 --- a/addon/index.mjs +++ b/addon/index.mjs | |||
@@ -1,15 +1,5 @@ | |||
1 | console.log('content script loaded') | 1 | console.log('content script loaded') |
2 | 2 | ||
3 | browser.runtime.onMessage.addListener((message, sender, sendResponse) => { | ||
4 | console.log('receive message', message) | ||
5 | sendResponse('received') | ||
6 | if (message === 'map-inline') { | ||
7 | alert('msg', message) | ||
8 | return Promise.resolve('done') | ||
9 | } | ||
10 | return false | ||
11 | }) | ||
12 | |||
13 | const url = new URL(window.location) | 3 | const url = new URL(window.location) |
14 | const use = url.searchParams.get('use') | 4 | const use = url.searchParams.get('use') |
15 | if (url.host === 'www.ptt.cc') { | 5 | if (url.host === 'www.ptt.cc') { |
@@ -23,17 +13,13 @@ if (url.host === 'www.ptt.cc') { | |||
23 | }) | 13 | }) |
24 | } | 14 | } |
25 | 15 | ||
26 | const blockSelectors = { | 16 | const contentSelectors = { |
27 | 'developer.mozilla': '.section-content', | 17 | 'developer.mozilla': ':has(.section-content)', |
28 | 'hackmd.io': '#doc > *', | 18 | 'hackmd.io': '#doc', |
29 | 'www.ptt.cc': '#main-content > span', | 19 | 'www.ptt.cc': '#main-content', |
30 | 'prosemirror.net': '.ProseMirror > *', | 20 | 'prosemirror.net': '.ProseMirror', |
31 | } | 21 | } |
32 | const blockSelector = blockSelectors[url.host] | 22 | const contentSelector = contentSelectors[url.host] |
33 | |||
34 | const addBlocks = blockSelector | ||
35 | ? root => Array.from(root.querySelectorAll(blockSelector)) | ||
36 | : undefined | ||
37 | 23 | ||
38 | const simpleRender = window.mapclay.renderWith(config => ({ | 24 | const simpleRender = window.mapclay.renderWith(config => ({ |
39 | use: use ?? 'Leaflet', | 25 | use: use ?? 'Leaflet', |
@@ -47,12 +33,16 @@ const simpleRender = window.mapclay.renderWith(config => ({ | |||
47 | }, | 33 | }, |
48 | })) | 34 | })) |
49 | 35 | ||
50 | if (!document.querySelector('.Dumby')) { | 36 | browser.runtime.onMessage.addListener((message, sender, sendResponse) => { |
51 | window.generateMaps(document.querySelector('main') ?? document.body, { | 37 | console.log('receive message', message) |
52 | crs: url.searchParams.get('crs') ?? 'EPSG:4326', | 38 | sendResponse('received') |
53 | addBlocks, | 39 | if (message === 'map-inline-add') { |
54 | initialLayout: 'sticky', | 40 | window.generateMaps(document.querySelector(contentSelector ?? 'main') ?? document.body, { |
55 | render: simpleRender, | 41 | crs: url.searchParams.get('crs') ?? 'EPSG:4326', |
56 | autoMap: false, | 42 | initialLayout: 'sticky', |
57 | }) | 43 | render: simpleRender, |
58 | } | 44 | }) |
45 | return Promise.resolve('done') | ||
46 | } | ||
47 | return false | ||
48 | }) | ||