我试图创建一个Chrome扩展程序,以阻止自己过多地访问某些页面,例如facebook。我的想法是在访问Facebook时使用扩展程序块,但它仍然可以让我继续访问Facebook。
现在我正在使用后台脚本来阻止它。
chrome.webNavigation.onBeforeNavigate.addListener(function(e) {
chrome.tabs.query({currentWindow: true, active: true}, function (tab) {
chrome.tabs.update(tab.id, {url: 'waster.html'});
});
}, {url: [{hostSuffix: 'facebook.com'}]}
);
在waster.html
我有一个去facebook的链接。但问题是,当我点击该链接时,它会再次触发相同的事件,然后被阻止。
有没有办法解决这个问题?喜欢可能通过链接传递参数以避免阻塞?
由于
== 编辑: 添加更多详细信息
目的是阻止facebook.com,所以我向onBeforeNavigate
添加了一个事件监听器" facebook.com"在过滤器中加载前停止页面,加载我自己的页面waster.html
。
但是在waster.html
我希望有一个允许用户访问Facebook的链接。
问题来自这里,因为当我点击链接时,它再次触发事件,并且再次阻止它。
答案 0 :(得分:1)
我搞砸了一下,现在虽然我还不完全理解为什么会这样做但
Dispose
在chrome.webNavigation.onBeforeNavigate.addListener(function(e) {
var url = new URL(e.url);
if (url.hostname == 'facebook.com') {
chrome.tabs.update(e.tabId, {url: 'waster.html'});
}
}, {url: [{hostSuffix: 'facebook.com'}]}
);
,而不是与waster.html
的正常链接,我需要使用以下js:
<a>