我正在构建一个chrome扩展程序,该扩展程序在访问特定网址时会自动关闭标签页,以免分散注意力。
以下是要关闭的网站:youtube脸书reddit推特
很奇怪,某些与过滤器不匹配的网址仍处于关闭状态,例如:https://hackernoon.com/binance-vs-coinbase-pro-vs-cryptocom-which-one-is-the-one-for-you-ijcn3259
为什么?
此处的代码:
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事件可能很有意义,因为该事件仅在该标签页开始加载时才报告。