我正在尝试使用Chrome declarativeWebRequest应用程序接口重定向网址,但它不起作用。
"permissions“键中的匹配模式适用于清单V2,但它现在抛出了一个
Permission '*://www.youtube.com/*' is unknown or URL pattern is malformed
V3出错。
manifest.json:
{
"manifest_version": 3,
"name": "Redirect Test",
"version": "0.0.1",
"permissions": [
"declarativeNetRequest",
"*://www.youtube.com/*"
],
"host_permissions": [
"*://www.youtube.com/*"
],
"declarative_net_request": {
"rule_resources": [
{
"id": "1",
"enabled": true,
"path": "rules.json"
}
]
}
}
rules.json:
[
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {"url": "https://www.google.com"}
},
"condition": {
"urlFilter": "*://www.youtube.com/*",
"resourceTypes": [
"main_frame"
]
}
}
]
我使用的是Chrome 88.0.4324.104
发布于 2021-02-27 09:47:06
The The The manifest documentation对于声明式的网络请求,在发布时并不完全准确。
这是manifest.json中的权限密钥从文档中:
"permissions": [
"declarativeNetRequest",
"declarativeNetRequestFeedback",
"*://example.com/*"
],
但是,站点应该在host_permissions
取而代之的是:
"host_permissions": [
"*://example.com/*"
],
应该注意的是,只有在以下情况下才需要显式声明action.redirect
如下例所示:
{
"id": 1,
"priority": 3,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "www.youtube.com/embed/"
}
},
"condition": {
"regexFilter": "(www\\.youtube\\.com\/watch\\?v=)",
"resourceTypes": [
"main_frame"
]
}
}
https://stackoverflow.com/questions/65894968
复制相似问题