2012-10-19 127 views
4

我讀過http://developer.chrome.com 的背景頁面和內容腳本,我對它們感到困惑,當我使用Background js和內容腳本時,我無法理解。例如:背景與內容腳本

清單

{ 
    "name": "Hello World", 
    "version": "2.0", 
    "manifest_version": 2, 
    "background": 
    { 
     "scripts": ["background.js"] 
    }, 
    "content_scripts": 
    [ 
     { 
      "matches": ["http://*/*", "https://*/*"], 
      "js": ["js/myScript.js"] 
     } 
    ], 
    "permissions": ["tabs", "http://*/*"], 
    "browser_action": 
    { 
     "default_icon": "icon.png" 
    } 
} 

如果我有background.js爲:

// Called when the user clicks on the browser action. 
chrome.browserAction.onClicked.addListener(function(tab) { 
    alert("test"); 
}); 

它的效果很好。但是,在myScript.js中使用以上相同的內容。這不是工作。

所以,我不知道哪個腳本位於後臺,它位於content_scripts中,請引導我。

謝謝

回答

11

在web頁面的上下文中運行其實,Content scripts是JavaScript文件。通過使用標準文檔對象模型(DOM),他們可以閱讀瀏覽器訪問的網頁的詳細信息,或者對其進行更改。

擴展的常見需求是使用一個長時間運行的腳本來管理某個任務或狀態。 Background pages來救援。後臺頁面是一個運行在擴展進程中的HTML頁面。它存在於您的擴展的生命週期中,並且一次只有一個實例處於活動狀態。

+0

嗨,謝謝你的快速回答。但這只是理論。我想問一些具體的情況:我需要處理點擊browser_action圖標,哪些內容腳本或背景?或者我想刷新(F5)頁面,........我應該使用背景或content_scripts?感謝 –

+0

好的,謝謝...... –

+1

@DarkLight,是的,你可以使用內容腳本,看看[這個答案](http://stackoverflow.com/questions/6499471/trigger-chrome-browseraction-onclicked-with-一個函數)和[也是這個](http://stackoverflow.com/questions/10041595/chrome-extensions-how-can-i-perform-an-action-when-chrome-browseraction-oncli)和[這個](http://developer.chrome.com/extensions/browserAction.html)。 –