## background
通常把需要长时间运行的、全局的代码放在`background`里面,它运行在一个独立运行环境,其实也可以说是运行在“后台”的一个页面,它是与当前浏览页面无关的。
在Manifest配置中,可以通过`page`指定一张网页,也可以通过`scripts`直接指定一个JS,Chrome会自动为这个JS生成一个默认的网页。
```
{
"background": {
// "page": "background.html",
"scripts": ["js/background.js"]
}
}
```
**1. Google翻译**
使用Google翻译选中文本(实例:`Custom Contextmenus`):
```
// manifest.json
{
"background": {
"scripts": ["background.js"]
},
// 申请权限
"permissions": [
"tabs",
"contextMenus"
]
}
// background.js
chrome.contextMenus.create({
title: 'Google翻译:%s',
contexts: ['selection'],
onclick: function(info, tab) {
chrome.tabs.create({url: 'https://translate.google.cn/#en/zh-CN/' + encodeURI(info.selectionText)});
}
}, function() {
console.log(chrome.extension.lastError);
})
```
`%s`可以自动获取到选中文本。
![](https://box.kancloud.cn/b8dae8438cd0045fcdb559f1a4b55b5e_370x178.png)
`background`调试:打开`chrome://extensions/ `,且激活开发者模式,点击对应插件“检查视图”后的“背景页”
更多关于右键菜单:《浏览器的UI界面 - > [右键菜单](右键菜单.md)》
可以在下面的地方(记得勾选开发者模式)查看`background`运行情况:
![](https://box.kancloud.cn/f0c5c4fcb629eff49133c9b1d5c5e884_597x165.png)
**何时使用**
需要持续运行在后台的
**event-pages**
除了上面的**后台页面**`background`,还有一种**事件页面**`event-pages`,它是在被需要时加载,在空闲时被关闭的后台脚本。
要使用它,只需简单的改一下`manifest.json`:
```
{
"background": {
"scripts": ["event-page.js"],
"persistent": false
},
}
```
**后台页面和事件页面的区别**
两者区别在于,后台页面(`background`)持续运行,它的生存周期和浏览器相同,也就是说从打开浏览器到关闭浏览器期间,后台脚本一直在运行,一直占据着内存等系统资源;而事件页面(`event page`)只在需要活动时活动,在完全不活动的状态持续几秒后,chrome将会终止其运行,从而释放其占据的系统资源,而在再次有事件需要后台脚本来处理时,重新载入它。
`background`完整API: [https://developer.chrome.com/extensions/background_pages](https://developer.chrome.com/extensions/background_pages)
- 前言
- 致读者
- 第一章 什么是Chrome扩展
- 第二章 manifest.json
- 常用配置
- background
- content-scripts
- popup
- web_accessible_resources
- devtools_page
- Command Line API
- homepage_url
- permissions
- 第三章 5种类型的Javascript
- 权限对比
- 消息传递
- 短连接
- 长连接
- 调试方式
- 第四章 浏览器的UI界面
- Browser Actions
- Page Actions
- 右键菜单
- 桌面通知
- Omnibox
- 选项页
- 覆盖特定页
- 第五章 Chrome应用开发
- 扩展与应用的异同
- 一个简单的Chrome应用
- 应用窗口
- 应用窗口
- 美化窗口
- 窗口事件
- webview
- 应用相关API
- 第六章 打包与发布扩展应用
- 第七章 常用API
- 右键菜单(contextMenus)
- 键盘快捷键(commands)
- cookies ✫
- 事件(events)
- Extension ✫
- 浏览器历史记录(history) ✫
- 消息通知(notifications)
- 扩展管理(management) ✫
- 本地存储(storage)
- 标签页(tabs) ✫
- 书签(bookmarks) ✫
- Runtime
- 窗口(windows) ✫
- 第八章 扩展
- 主题
- 国际化 (i18n)
- 已安装的扩展
- 附录A 参考资料