我的清單看起來像這樣: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