Javascript Chrome扩展-为什么有些URL不';不匹配的过滤器仍然通过?
我正在构建一个chrome扩展,在访问特定URL时自动关闭选项卡,以避免分心 以下是将关闭的网站: youtube 脸谱网 雷迪特 推特 奇怪的是,一些与过滤器不匹配的URL仍然关闭,如: 为什么? 代码如下:Javascript Chrome扩展-为什么有些URL不';不匹配的过滤器仍然通过?,javascript,google-chrome,url,browser,google-chrome-extension,Javascript,Google Chrome,Url,Browser,Google Chrome Extension,我正在构建一个chrome扩展,在访问特定URL时自动关闭选项卡,以避免分心 以下是将关闭的网站: youtube 脸谱网 雷迪特 推特 奇怪的是,一些与过滤器不匹配的URL仍然关闭,如: 为什么? 代码如下: chrome.webNavigation.onDOMContentLoaded.addListener(function(data) { chrome.tabs.remove(data.tabId); }, {url: [ { hostContains
chrome.webNavigation.onDOMContentLoaded.addListener(function(data) {
chrome.tabs.remove(data.tabId);
}, {url: [
{ hostContains: '.youtube' },
{ hostContains: '.twitter' },
{ hostContains: '.reddit' },
{ hostContains: '.facebook' }
]
});
非常感谢你的帮助 webNavigation API还报告iFrame,因此您应该检查
frameId
是否为0
:
chrome.webNavigation.onDOMContentLoaded.addListener(data => {
if (!data.frameId) {
chrome.tabs.remove(data.tabId);
}
}, {
url: [
{ hostContains: '.youtube' },
{ hostContains: '.twitter' },
{ hostContains: '.reddit' },
{ hostContains: '.facebook' },
],
});
顺便说一句,使用chrome.webNavigation.onCommitted事件可能是有意义的,因为它是在选项卡仅开始加载时报告的。webNavigation API还报告iFrame,因此您应该检查
frameId
是否为0
:
chrome.webNavigation.onDOMContentLoaded.addListener(data => {
if (!data.frameId) {
chrome.tabs.remove(data.tabId);
}
}, {
url: [
{ hostContains: '.youtube' },
{ hostContains: '.twitter' },
{ hostContains: '.reddit' },
{ hostContains: '.facebook' },
],
});
顺便说一句,使用chrome.webNavigation.onCommitted事件可能是有意义的,因为之前在选项卡仅开始加载时报告了该事件。我不知道,太棒了!感谢您的工作解决方案和提示:)完美答案!我不知道,太棒了!感谢您的工作解决方案和提示:)完美答案!