我正在开发一个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"]
}
]
}
答案 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。