diff options
-rw-r--r-- | extension/background.js | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/extension/background.js b/extension/background.js index dd7732d..fbd946e 100644 --- a/extension/background.js +++ b/extension/background.js @@ -219,16 +219,21 @@ Routes["/tabs/create-reuse"] = { description: 'Open a URL, reusing existing tabs where it makes sense.', usage: 'echo "https://en.wikipedia.org/wiki/HTTP#History" > $0', async write({buf}) { - const url = buf.trim(); + let url = buf.trim(), + base = new URL(url), + hash = base.hash + base.hash = ""; base = base.toString() - let tabs = await browser.tabs.query({url}), + let tabs = await browser.tabs.query({url: base}), tab = tabs.find(t => t.active) || tabs[0] - if (!tab) tab = await browser.tabs.create({url}) - - if (new URL(url).hash != new URL(tab.url).hash) - browser.tabs.executeScript(tab.id, + if (!tab) + await browser.tabs.create({url}) + else if (new URL(tab.url).hash != hash) { + await browser.tabs.executeScript(tab.id, {code: `window.location = ${JSON.stringify(url)}`}) - + await browser.tabs.update(tab.id, + {active: true}) + } return {size: stringToUtf8Array(buf).length}; }, async truncate() { return {}; } |