此文档中主要描述与chrome api的不同之处,chorme的对应api请参见 http://code.google.com/chrome/extensions/extension.html
sogouExplorer.extension这个模块主要包含了可以被插件使用的一些工具。例如在插件和脚本间交换信息等内容。
API参考:sogouExplorer.extension
方法
connect
Port sogouExplorer.extension.connect(string extensionId, object connectInfo)
- 尝试连接到扩展内的其他监听器(例如本扩展的background page)。本方法经常使用于content scripts连接到扩展进程的
- 时候。反之,如果扩展想要连接到content scripts,那么使用sogouExplorer.tabs.connect()。
- 参数
- extensionId( 可选 string )
- 你想要连接到的扩展的ID。如果没有指定,那么默认是连接到你自己的扩展。
- connectInfo( 可选 object )
- name( 可选 string )
- 这个参数将会被传递到扩展进程的onConnect方法中。
- 返回
- ( Port )
- 通过这个Port,信息可以被传递和接收。如果在连接的时候扩展没有找到,那么port的onDisconnect事件将会被触发。
getURL
string sogouExplorer.extension.getURL(string path)
- 将针对于扩展目录的相对URL地址转换为一个标准的URL地址。
- 参数
- path( string )
- 将要被转换的相对URL地址。
- 返回
- ( string )
- 一个标准严格的URL地址。
sendRequest
sogouExplorer.extension.sendRequest(string extensionId, any request, function responseCallback)
- 向扩展内的其它listeners发送一个请求,类似于sogouExplorer.extension.connect,不同的是这个方法并不一定要求
- response。本扩展内页面中的sogouExplorer.extension.onRequest事件将会被触发。
- 参数
- extensionId( 可选 string )
- 给定你想要连接的扩展的ID。如果没有指定,那么默认连接的是你自己的扩展。
- request( any )
- responseCallback( 可选 function )
- 参数
- response ( any )
- 返回一个json类型的对象。如果在连接的过程中发生了错误,那么callback方法将会没有任何参数,同时
- sogouExplorer.extension.lastError将会被设置成出错的信息。
- Callback方法
- 如果指定了callback方法,那么它应该如下所示:
- function(any response) {...};
- response( any )
- 一个json类型的对象。如果在连接的过程中发生了错误,那么callback方法将会没有任何参数,同时
- sogouExplorer.extension.lastError将会被设置成出错的信息。
事件
onConnect
sogouExplorer.extension.onConnect.addListener(function (Port port) {…});
- 每当从扩展进程或者content script得到连接的时候,这个事件将会被触发。
- 参数
- port ( Port )
- 详见Port。
onRequest
sogouExplorer.extension.onRequest.addListener(function (any request, MessageSender sender, function sendResponse) {…});
- 每当从扩展进程或者content script得到请求的时候,这个事件将会被触发。
- 参数
- request( any )
- 从请求脚本发送过来的请求。
- sender( MessageSender )
- 详见MessageSender。
- sendResponse( function )
- 如果指定了response方法,那么这个方法将会被触发。参数必须是符合JSON规范的对象,如果没有指定参数的话将会是
- undefined。
类型
MessageSender
( object )
- 包含了脚本上下文信息的对象,可以用来传送消息和请求。
- tab( 可选 Tab )
- 这个属性只有在连接是从标签页或者content script发起的时候才会出现。
- id( string )
- 扩展的ID。
Event
( object )
- 用来添加或者删除listeners的对象。
- addListener( function )
- removeListener( function )
- hasListener( function )
- hasListeners( function )
Port
( object )
- 两个页面用来进行通信的对象。
- name( string )
- onDisconnect( Event )
- onMessage( Event )
- postMessage( function )
- sender( 可选 MessageSender )
- 这个属性只有在onConnect的时候才会出现。
[编辑]
未实现的api
chrome.extension.getViews(object fetchProperties)
chrome.extension.setUpdateUrlData(string data)
chrome.extension.getBackgroundPage()
chrome.extension.onRequestExternal.addListener(function(any request, MessageSender sender, function sendResponse) {…});
chrome.extension.onConnectExternal.addListener(function(Port port) {…});
未实现的属性
- lastError
- sogouExplorer.extension.lastError
- lastError( 可选 object )
- 在一个callback方法的生命周期中,如果异步扩展的api产生了错误,那么lastError将会被设置。反之如果没有遇到
- 任何错误,那么lastError的值将会是undefined。
- message ( string )
- 错误的详细描述
inIncognitoContext
sogouExplorer.extension.inIncognitoContext
- inIncognitoContext( 可选 object )
- 如果为true,那么脚本内容将会在隐身标签页中运行,而且扩展页面将会在隐身进程下运行。
- message ( boolean )
- 判断页面或者脚本是否是在隐身进程中。