0

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

1 回答 1

0

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

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

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

{urls: ["*://9gag.com/*"]},
于 2013-04-27T22:33:04.740 回答