在我的manifest.json中,当我添加后台属性时,弹出窗口不起作用(当我点击扩展名时没有任何反应)但是当我摆脱背景属性时,弹出窗口开始工作。我不知道为什么会这样。我发布下面的清单:
{
"manifest_version": 2,
"name": "Test blocking of 9gag",
"description": "my test shittt",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": ["webRequest","webRequestBlocking","*://9gag.com/*"]
,
"background": {
"persistent": true,
"scripts": [ "block.js" ]
}
}
更新: 添加了其他文件 后台脚本:block.js:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {redirectUrl: "https://lh6.googleusercontent.com/-A3P-CvVSIyo/USzTbs0RRBI/AAAAAAAAALg/x47zbfBbYtw/s1600-rw/y-u-no-work"}
},
{urls: ["<all_urls>"]},
["blocking"]);
popup.html:
<!doctype html>
<html>
<head>
<title>test</title>
<style>
body {
min-width: 357px;
overflow-x: hidden;
}
img {
margin: 5px;
border: 2px solid black;
vertical-align: middle;
width: 75px;
height: 75px;
}
</style>
</head>
<body>
<div id="result"></div>
<p>Test.</p>
<p>test123</p>
</body>
</html>
答案 0 :(得分:0)
我想我应该把它写成答案,以防其他人有同样的问题。 webRequest
api要求其正在侦听的每个网址的主机权限。由于您希望更改<all_urls>
,只需将其添加到您的权限字段中,如下所示:
"permissions": ["webRequest","webRequestBlocking","<all_urls>"]
尽管实际上最好只为您实际需要的主机请求权限。在这种情况下9gag。更改过滤器也可以。
{urls: ["*://9gag.com/*"]},