除了 chrome.* API,扩展程序就可以使用浏览器为网页和应用提供的所有 API。如果浏览器不支持您要使用的 API,您可以将其他 API 库捆绑到扩展程序中。
以下是扩展程序可以使用的 API 示例:
- 标准 JavaScript API
- 这些 API 与您可以在普通 Web 应用中使用的核心 JavaScript API 和文档对象模型 (DOM) API 相同。
- XMLHttpRequest
- 使用 XMLHttpRequest 从一个或多个服务器请求数据。清单的 permissions 字段指定该扩展程序可以向哪些主机发送请求。
- HTML 和其他新兴 API
Google Chrome 支持现代 HTML 功能,以及其他新兴 API。以下是一些您可以使用的 API:
- 音频(教程)
- 应用缓存(教程)
- 画布(文章)
- 全屏(文章)
- 在 Chrome 应用中,系统会直接进入全屏模式,而不提示用户或提供退出说明。
HTML5 全屏需要清单中的
app.window.fullscreen
权限。在普通网页中,浏览器会拦截 ESC 键以退出指针锁定,从而确保为用户提供一致的转义方法。Chrome 应用的行为也是如此,除非使用app.window.fullscreen.overrideEsc
权限让应用能够对 keydown 和 keyup 事件调用preventDefault
。 - 地理定位(教程)
- 本地存储空间(教程)
- (教程)
- 指针锁定(教程)
- 在 Chrome 应用中,无需用户手势、提示用户或提供退出说明即可输入指针锁定。指针锁定需要清单中的
pointerlock
权限。此外,网页没有默认退出行为。在普通网页中,浏览器会拦截 ESC 键以退出指针锁定。Chrome 应用中不存在此行为。 - 视频(教程)
- Web 数据库(教程)
有关 HTML5 信息、教程、交互式游乐场以及指向其他资源的链接,请访问 html5rocks.com。
- Web API
您的扩展程序可以使用 Web API。滤镜、动画和转换等 CSS 功能尤为有用。下面是一个使用 WebKit 样式使界面旋转的示例:
<style> div:hover { transform: rotate(360deg); transition: all 1s ease-out; } </style>
- V8 API(例如 JSON)
由于 JSON 是在 V8 中编写的,因此您无需添加 JSON 库即可使用 JSON 函数。
- 捆绑库中的 API
如果您想使用浏览器不提供的库(例如 jQuery),您可以将该库的 JavaScript 文件与您的扩展程序捆绑在一起。捆绑库在扩展程序中的工作方式与其他网页一样。