我的清单看起来像这样:Chrome扩展如何注入我的内容脚本到所有Facebook页面
{
"manifest_version": 2,
"name": "Facebook Extension",
"version": "1.0",
"browser_action": {
"default_icon": "images/fbh.png",
"default_popup": "fbh-popup.html"
},
"permissions": [
"storage",
"background",
"tabs",
"http://www.facebook.com/*",
"https://www.facebook.com/*"
],
"content_scripts": [
{
"matches": [
"http://www.facebook.com/*",
"https://www.facebook.com/*"
],
"js": ["js/jquery-1.9.1.min.js", "js/fbh-main.js"],
"css": ["css/fbh-main.css"],
"run_at": "document_end"
}
],
"background":{
"persistent": true,
"scripts": ["js/jquery-1.9.1.min.js","js/fbh-background.js"]
}
}
我想每一次我去在Facebook新页面注入我的内容脚本。例如,如果我点击用户的个人资料,我想注入内容脚本。
在我的背景页,我有以下监听器:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
console.log(changeInfo);
if (changeInfo.status === 'complete') {
chrome.tabs.executeScript(null, {file: "js/fbh-main.js"});
}
});
有几个与此问题,但是。首先,这个函数试图将我的内容脚本注入到所有页面中。我需要能够读取清单权限。其次,如果我从www.facebook.com开始,则内容脚本将执行它应该做的事情。但是,如果从那里,我点击“foo”的配置文件,然后转到www.facebook.com/foo,注入内容脚本(如console.log消息所证明的),但它没有执行它应该做的事情。我认为它的注入时间太快,因为如果我直接导航到www.facebook.com/foo,则内容脚本将被加载并执行其操作。
有没有更好的方法来做到这一点?
是[这个问题](http://stackoverflow.com/questions/6497548/chrome-extension-make-it-run-每页加载)的任何帮助? – thordarson 2013-02-17 01:35:19