Chrome扩展程序背景属性和popup.html无法一起使用

时间:2013-04-26 03:42:44

标签: google-chrome-extension background popup

在我的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>

1 个答案:

答案 0 :(得分:0)

我想我应该把它写成答案,以防其他人有同样的问题。 webRequest api要求其正在侦听的每个网址的主机权限。由于您希望更改<all_urls>,只需将其添加到您的权限字段中,如下所示:

"permissions": ["webRequest","webRequestBlocking","<all_urls>"]

尽管实际上最好只为您实际需要的主机请求权限。在这种情况下9gag。更改过滤器也可以。

{urls: ["*://9gag.com/*"]},