我花了几个小时试图自己解决这个问题,分析了一堆其他人的工作(这是我试图破解的最新工作Block URL with a specific word somewhere in the subdomain),而且没有聪明。
我觉得js不应该那么复杂,我只是试图阻止一个网页并在其位置显示错误信息。
这是我在网上发布的地方:
chrome.declarativeWebRequest.onRequest.addRules({
id: 'some rule id',
conditions: [
new chrome.declarativeWebRequest.RequestMatcher({
url: {
host: 'www.dailymail.com'
}
})
],
actions: [
new chrome.declarativeWebRequest.CancelRequest()
]
});
答案 0 :(得分:0)
Block URL with a specific word somewhere in the subdomain的答案按预期工作。如果它不起作用,请按照以下步骤解决问题:
Open the background page's console并查找错误消息。
在Google上搜索错误消息,并尝试了解推荐的结果。值得信赖的来源包括Stack Overflow,extension documentation,Chromium's bug tracker,chromium-extensions和chromium-apps邮件列表。
检查您是否已为manifest file添加了正确的权限。
如果您刚刚添加了新权限,请确保已重新加载扩展程序(例如,点击chrome://extensions/
处的重新加载)。
根据您提供的信息,我可以想到失败的三个原因:
declarativeWebRequest
API目前在稳定渠道上不,仅在测试版和开发者渠道上提供。 url
是UrlFilter
类型的对象。没有名为“host”的属性,如果要匹配确切的主机,请使用hostEquals
,如下所示:
url: {
hostEquals: 'www.dailymail.com'
}
declarativeWebRequest
和*://www.dailymail.com/*
权限。