Я могу получить вкладки браузера, используя шаблон соответствия
browser.tabs.query({ url: 'https://mozilla.org/*/b/*/' })
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns
Во время обновления вкладки я могу получить идентификатор вкладки и URL, но как это сделать?Я проверяю, соответствует ли вкладка моему исходному шаблону соответствия?
browser.tabs.onUpdated.addListener(event => { browser.tabs.get(event).then((tab) => { if (tab.status === 'complete') { if (?? tab.url matches 'https://mozilla.org/*/b/*/') { console.log("Do something") } } }) });
Простой самописный сопоставитель звездочек будет:
function match(pattern, url) { pattern = pattern.split("/"); url = url.split("/"); while(url.length) { const p = pattern.shift(); if(p !== url.shift() && p !== "*") return false; } return true; } console.log( match("https://example.com/*/test/", "https://example.com/a/test/"), match("https://example.com/*/test/", "https://example.com/a/b/") );