注入的脚本继续到下一页

时间:2016-08-19 22:04:53

标签: json google-chrome google-chrome-extension

我正在开发一个Chrome扩展程序,它将脚本注入到facebook中以改变外观。该脚本仅在主页上运行。问题是,如果我从主页上转到facebook上的其他页面,脚本将继续运行。此外,如果我从Facebook上的任何其他页面转到主页,脚本不会运行。我不确定发生了什么。我认为这可能与我的manifest.json有关,但我不知道。任何帮助都会很棒。

我的manifest.json是

{
  "manifest_version": 2,

  "name": "Getting started example",
  "description": "This extension shows a Google Image search result for the current page",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup/popup.html",
    "default_title": "Bamboozle"
  },
  "permissions": [
    "activeTab",
    "https://ajax.googleapis.com/"
  ],
  "content_scripts": [
    {
      "matches": ["https://www.facebook.com/","https://www.facebook.com/?*"], 
      "js": ["facebook/facebook.js"],
      "css" : ["facebook/facebook.css"]
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

这是一个现代化的网站。它会动态更新其部件并伪造URL更改。

使用该权限或添加"tabs"权限(这将使网站商店在安装您的扩展程序时要求访问所有网站的权限)并跟踪chrome.tabs.onUpdated侦听器中的地址更改,然后更改工具栏中带有chrome.browserAction.setIcon的图标,为您的扩展程序包提供正常或灰显的图标。

另一种可能的解决方案是declarativeContent API:给它一个只在你想要的页面上出现的元素的css选择器,并使用chrome.declarativeContent.ShowPageAction()进行操作,如文档中所示。如果您从现在使用的browserAction切换到pageAction,这将有效。或者尝试chrome.declarativeContent.SetIcon() - 它会有些混乱:pass arguments to chrome.declarativeContent.SetIcon