此文档中主要描述与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)

  1. 尝试连接到扩展内的其他监听器(例如本扩展的background page)。本方法经常使用于content scripts连接到扩展进程的
  2. 时候。反之,如果扩展想要连接到content scripts,那么使用sogouExplorer.tabs.connect()。
  3.  
  4. 参数
  5.  
  6. extensionId( 可选 string )
  7. 你想要连接到的扩展的ID。如果没有指定,那么默认是连接到你自己的扩展。
  8. connectInfo( 可选 object )
  9. name( 可选 string )
  10. 这个参数将会被传递到扩展进程的onConnect方法中。
  11.  
  12. 返回
  13. ( Port )
  14. 通过这个Port,信息可以被传递和接收。如果在连接的时候扩展没有找到,那么portonDisconnect事件将会被触发。

getURL

string sogouExplorer.extension.getURL(string path)

  1. 将针对于扩展目录的相对URL地址转换为一个标准的URL地址。
  2.  
  3. 参数
  4. path( string )
  5. 将要被转换的相对URL地址。
  6.  
  7. 返回
  8. ( string )
  9. 一个标准严格的URL地址。

sendRequest

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

  1. 向扩展内的其它listeners发送一个请求,类似于sogouExplorer.extension.connect,不同的是这个方法并不一定要求
  2. response。本扩展内页面中的sogouExplorer.extension.onRequest事件将会被触发。
  3.  
  4. 参数
  5. extensionId( 可选 string )
  6. 给定你想要连接的扩展的ID。如果没有指定,那么默认连接的是你自己的扩展。
  7. request( any )
  8. responseCallback( 可选 function )
  9. 参数
  10. response ( any )
  11. 返回一个json类型的对象。如果在连接的过程中发生了错误,那么callback方法将会没有任何参数,同时
  12. sogouExplorer.extension.lastError将会被设置成出错的信息。
  13.  
  14. Callback方法
  15. 如果指定了callback方法,那么它应该如下所示:
  16. function(any response) {...};
  17. response( any )
  18. 一个json类型的对象。如果在连接的过程中发生了错误,那么callback方法将会没有任何参数,同时
  19. sogouExplorer.extension.lastError将会被设置成出错的信息。

事件

onConnect

sogouExplorer.extension.onConnect.addListener(function (Port port) {…});

  1. 每当从扩展进程或者content script得到连接的时候,这个事件将会被触发。
  2.  
  3. 参数
  4. port ( Port )
  5. 详见Port

onRequest

sogouExplorer.extension.onRequest.addListener(function (any request, MessageSender sender, function sendResponse) {…});

  1. 每当从扩展进程或者content script得到请求的时候,这个事件将会被触发。
  2.  
  3. 参数
  4. request( any )
  5. 从请求脚本发送过来的请求。
  6. sender( MessageSender )
  7. 详见MessageSender
  8. sendResponse( function )
  9. 如果指定了response方法,那么这个方法将会被触发。参数必须是符合JSON规范的对象,如果没有指定参数的话将会是
  10. undefined

类型

MessageSender

( object )

  1. 包含了脚本上下文信息的对象,可以用来传送消息和请求。
  2.  
  3. tab( 可选 Tab )
  4. 这个属性只有在连接是从标签页或者content script发起的时候才会出现。
  5. id( string )
  6. 扩展的ID

Event

( object )

  1. 用来添加或者删除listeners的对象。
  2.  
  3. addListener( function )
  4. removeListener( function )
  5. hasListener( function )
  6. hasListeners( function )

Port

( object )

  1. 两个页面用来进行通信的对象。
  2.  
  3. name( string )
  4. onDisconnect( Event )
  5. onMessage( Event )
  6. postMessage( function )
  7. sender( 可选 MessageSender )
  8. 这个属性只有在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) {…});

未实现的属性

  1. lastError
  2.  
  3. sogouExplorer.extension.lastError
  4. lastError( 可选 object )
  5. 在一个callback方法的生命周期中,如果异步扩展的api产生了错误,那么lastError将会被设置。反之如果没有遇到
  6. 任何错误,那么lastError的值将会是undefined
  7. message ( string )
  8. 错误的详细描述

inIncognitoContext

sogouExplorer.extension.inIncognitoContext

  1. inIncognitoContext( 可选 object )
  2. 如果为true,那么脚本内容将会在隐身标签页中运行,而且扩展页面将会在隐身进程下运行。
  3. message ( boolean )
  4. 判断页面或者脚本是否是在隐身进程中。