設定
要使用背景執行緒,必須先在 Extension 設定檔 (manifest.json) 內設定。而設定的方式有兩種:
1. HTML 頁面
將背景執行緒指定為 HTML 格式的檔案 background.html。
1. HTML 頁面
將背景執行緒指定為 HTML 格式的檔案 background.html。
{
"name": "My extension",
...
"background": {
"page": "background.html"
},
...
}
再從 background.html 檔案載入 scripts。
<html>
<head>
<script type="text/javascript" src="background-1.js"></script>
<script type="text/javascript" src="background-2.js"></script>
</head>
<body>
...
</body>
</html>
2. Scripts 腳本
直接設定背景執行緒有哪些 scripts 檔。
直接設定背景執行緒有哪些 scripts 檔。
{
"name": "My extension",
...
"background": {
"scripts": ["background-1.js", "background-2.js"]
},
...
}
生命週期
依生命週期的長短分為後台網頁和事件頁面兩種:
後台網頁: 需要有一個長時間運行的 scripts 來管理一些任務或狀態。
事件頁面: 事件頁面與後台網頁很像,但是事件頁面只在需要時加載,當事件頁面當前不活動時將會卸載,釋放內存及其他系統資源。
後台網頁: 需要有一個長時間運行的 scripts 來管理一些任務或狀態。
事件頁面: 事件頁面與後台網頁很像,但是事件頁面只在需要時加載,當事件頁面當前不活動時將會卸載,釋放內存及其他系統資源。
設定方式如下,persistent 設定為 false 時,就是事件頁面。預設為 true (後台網頁)。
{
"name": "My extension",
...
"background": {
"scripts": ["background-1.js", "background-2.js"],
"persistent": false
},
...
}
事件註冊
部分的 API 只有在背景執行緒才能執行 (例如:右鍵選單建立與事件監聽),因此通常需要在背景執行緒註冊監聽事件。
範例 1 : 右鍵選單 (官方範例: Context Menus Samples)
...
// Create some radio items.
function radioOnClick(info, tab) {
console.log("radio item " + info.menuItemId +
" was clicked (previous checked state was " +
info.wasChecked + ")");
}
var radio1 = chrome.contextMenus.create({"title": "Radio 1", "type": "radio",
"onclick":radioOnClick});
var radio2 = chrome.contextMenus.create({"title": "Radio 2", "type": "radio",
"onclick":radioOnClick});
...
範例 2 : 瀏覽器按鈕 (官方範例: Print this page)
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
var action_url = "javascript:window.print();";
chrome.tabs.update(tab.id, {url: action_url});
});
總結:
看完這篇,你應該可以知道背景執行緒如何設定,生命週期的類型分為後台網頁和事件頁面兩種,以及常應用於事件監聽和管理一些任務或狀態。
如果你有任何問題,歡迎在下面留言。
如果你有任何問題,歡迎在下面留言。
沒有留言:
張貼留言