我可以使用匹配模式获取浏览器选项卡
browser.tabs.query({ url: 'https://mozilla.org/*/b/*/' })
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns
在选项卡的更新事件期间,我可以获得选项卡 ID 和 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/")
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)