2014-07-24 153 views
0

我想創建一個新的Chrome擴展,但它不起作用。 我想注入一個js文件到網頁(所有的網頁,不只一個。如果我在google上推鉻版圖標,腳本必須執行,如果我推Facebook上的圖標,它必須執行ect。)Chrome擴展插件js

這是background.js

chrome.browserAction.onClicked.addListener(function(tab) { 

chrome.tabs.executeScript({ 

    null,{file: "backgrounds.js"} }); 
}); 

這是backgrounds.js

document.body.innerHTML="display div elem with style and id"; 

這是manifest.json的

{ 
"name": "MyExt", 
"description": "an extension,what else?", 
"version": "1.0", 
"permissions": [ 
    "activeTab" 


], 
"content_scripts": [ 
    { 
     "matches": ["http://*/*"], 
     "js": ["background.js"] 
    } 
], 
"browser_action": { 
    "default_title": "myExt" 
}, 
"manifest_version": 2 
} 

我錯了什麼? 我在Windows 8.1 Update 1的鍍鉻最後一個版本

+0

臨提示:不要對你不同的文件'background.js'和'backgrounds.js' – Xan

+0

感謝提示:d所有的 –

回答

1

你的清單是錯誤的:你應該設置background.js作爲背景腳本:

"background" : { "scripts" : [ "background.js" ] }, 

並刪除"content_scripts"部分。


"activeTab"許可意味着你不需要指定主機的權限在瀏覽器操作點擊當前標籤注入,因此不需要其他權限。


tabId參數是可選的,你能把它,而不是通過null。而你的調用是錯誤的(你在一個對象中包含兩個參數)。下面是正確的方法:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript({file: "backgrounds.js"}); 
}); 
+0

感謝有你尚未雕像? :d –