chrome.extension

描述 chrome.extension API 包含任何扩展程序页面都能使用的实用方法。它包括在扩展程序和内容脚本之间或者两个扩展程序之间交换消息的支持,消息传递中详细描述了这些内容。
可用版本 从 Chrome 5 开始支持。
内容脚本 支持 getURLinIncognitoContextlastErroronRequest sendRequest了解更多

摘要

属性
lastError
inIncognitoContext
方法
sendRequest chrome.extension.sendRequest(string extensionId, any request, function responseCallback)
getURL string chrome.extension.getURL(string path)
getViews array of Window chrome.extension.getViews(object fetchProperties)
getBackgroundPage Window chrome.extension.getBackgroundPage()
getExtensionTabs array of Window chrome.extension.getExtensionTabs(integer windowId)
isAllowedIncognitoAccess chrome.extension.isAllowedIncognitoAccess(function callback)
isAllowedFileSchemeAccess chrome.extension.isAllowedFileSchemeAccess(function callback)
setUpdateUrlData chrome.extension.setUpdateUrlData(string data)
事件
onRequest
onRequestExternal

属性

object chrome.extension.lastError 如果异步扩展程序 API 发生错误,将在回调函数的生命周期内设置该属性。如果没有错误发生,lastError 将为 undefined
属性
string message

对发生的错误的描述。

boolean chrome.extension.inIncognitoContext

从 Chrome 7 开始支持。

如果内容脚本正在隐身标签页中运行,或者扩展程序页面在隐身进程中运行,则为 true。后一种情况只适用于具有分离("split")隐身行为的扩展程序。

方法

sendRequest

chrome.extension.sendRequest(string extensionId, any request, function responseCallback)

从 Chrome 33 开始弃用请使用 runtime.sendMessage

向扩展程序中的其他监听者(或另一个扩展程序/应用)发送单个请求。与 runtime.connect 类似,但是只发送具有可选回应的单个请求。extension.onRequest 事件将在扩展程序的每一个页面中产生。

参数
string (可选)
extensionId

您希望连接的扩展程序标识符,如果省略,默认为您自己的扩展程序。

any request
function (可选)
responseCallback

如果您指定了 responseCallback 参数,它应该是一个如下形式的函数:

function(any response) {...};
any response

请求处理程序发出的 JSON 响应对象。如果连接到指定标签页的过程中发生错误,将不传递参数调用回调函数,并将 runtime.lastError 设置为错误消息。

getURL

string chrome.extension.getURL(string path)

将扩展程序安装目录中的相对路径转换为完整的 URL。

参数
string path

扩展程序内的资源,以相对于安装目录的路径表示。

getViews

array of Window chrome.extension.getViews(object fetchProperties)

返回一个数组,含有每一个在当前扩展程序中运行的页面的JavaScript window 对象。

参数
object (可选)
fetchProperties
enum of "tab", "infobar", "notification", or "popup" (可选)
type

要获取的视图类型。如果省略,返回所有视图(包括后台页面和标签页)。有效值为:"tab"(标签页)、"infobar"(信息栏)、"notification"(通知)、"popup"(弹出窗口)。

integer (可选)
windowId

将搜索限制在指定窗口中。如果省略,返回所有视图。

getBackgroundPage

Window chrome.extension.getBackgroundPage()

返回运行在当前扩展程序中的后台网页的 JavaScript window 对象。如果扩展程序没有后台网页则返回 null。

返回值

getExtensionTabs

array of Window chrome.extension.getExtensionTabs(integer windowId)

从 Chrome 33 开始弃用请使用 extension.getViews {type: "tab"}

返回包含 JavaScript 'window' 对象的数组,对应当前扩展程序中运行的每一个标签页。如果指定了 windowId,只返回附加到指定窗口的标签页的 'window' 对象。

参数
integer (可选)
windowId

isAllowedIncognitoAccess

chrome.extension.isAllowedIncognitoAccess(function callback)

从 Chrome 12 开始支持。

获取该扩展程序能否在隐身模式中使用(由用户控制的“在隐身模式下启用”复选框决定)的状态。

参数
function callback

callback 参数应该是一个如下形式的函数:

function(boolean isAllowedAccess) {...};
boolean isAllowedAccess

如果该扩展程序允许在隐身模式下使用则为 true,否则为 false。

isAllowedFileSchemeAccess

chrome.extension.isAllowedFileSchemeAccess(function callback)

从 Chrome 12 开始支持。

获取该扩展程序能否访问 file:// 协议(由用户控制的“允许访问文件网址”复选框决定)的状态。

参数
function callback

callback 参数应该是一个如下形式的函数:

function(boolean isAllowedAccess) {...};
boolean isAllowedAccess

如果该扩展程序可以访问 file:// 协议则为 true,否则为 false。

setUpdateUrlData

chrome.extension.setUpdateUrlData(string data)

从 Chrome 9 开始支持。

设置扩展程序更新 URL 中使用的 CGI 参数 ap 的值,对于托管在 Chrome 网上应用店的扩展程序将忽略这一值。

参数
string data

事件

onRequest

从 Chrome 33 开始弃用请使用 runtime.onMessage

扩展程序进程或内容脚本发送请求时产生。

addListener

chrome.extension.onRequest.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(any request, runtime.MessageSender sender, function sendResponse) {...};
any (可选)
request

调用脚本发送的请求。

runtime.MessageSender sender
function sendResponse

有响应时调用的函数(最多调用一次),参数必须是可以转换为 JSON 的对象,或者没有响应时为 undefined。如果在同一文档中有多个 onRequest 监听器,只有其中一个可以发送响应。

sendResponse 参数应该是一个如下形式的函数:

function() {...};

onRequestExternal

从 Chrome 33 开始弃用请使用 runtime.onMessageExternal

请求从另一个扩展程序发送时产生。

addListener

chrome.extension.onRequestExternal.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(any request, runtime.MessageSender sender, function sendResponse) {...};
any (可选)
request

调用脚本发送的请求。

runtime.MessageSender sender
function sendResponse

有响应时调用的函数(最多调用一次),参数必须是可以转换为 JSON 的对象,或者没有响应时为 undefined。

sendResponse 参数应该是一个如下形式的函数:

function() {...};

示例扩展程序