sogouExplorer.tabs. 对应Chrome扩展的 chrome.tabs.( http://code.google.com/chrome/extensions/tabs.html ),目的是控制标签的操作.包括创建,修改,重新排列标签页.

目录

API参考:sogouExplorer.tabs

方法

connect

sogouExplorer.tabs.connect(integer tabId, object connectInfo)

  1. 把脚本内容连接到指定的标签页。每一个在当前扩展所指定的标签下运行的脚本内容中的sogou.extension.onConnect事件
  2. 将被触发。
  3.  
  4. 参数
  5. tabId (可选 integer)
  6. 指定标签页的ID
  7. connectInfo( 可选 object)
  8. name( 可选 string )
  9. 将会被传入到onConnect所指定的脚本内容中。
  10. 返回
  11. ( Port )
  12. port可以用于指定的标签页中的脚本内容间的通信。portonDisconnect事件会在标签页被关闭和标签页不存在的时候
  13. 被触发。port的定义见SogouExplorer.extension

create

sogouExplorer.tabs.create(object createProperties, function callback)

  1. 创建一个新的标签页。
  2.  
  3. 参数
  4. createProperties ( object )
  5. windowId( 可选 integer )
  6. 指定新创建的标签页将出现在哪一个窗口之中。默认是当前窗口。
  7. index( 可选 integer)
  8. 指定新建的标签页出现在窗口中的位置。所给的值一定要在0和窗口中标签页的总数之间。
  9. url( 可选 string )
  10. 设定标签页默认访问的URL。一个标准的URL必须是(http://www.sogou.com ),而不是(www.sogou.com)。如果指定
  11. 的是相对路径,那么就是相对于当前页面的这个扩展。默认值是空的标签页。
  12. selected( 可选 boolean )
  13. 是否选定这个新建的标签页。默认值是true
  14. callback ( 可选 function )
  15.  
  16. Callback方法
  17. 如果指定了callback中的参数,那么它应该是如下的形式:
  18. function(Tab tab) {...};
  19. tab( Tab )
  20. 标签页的信息。

executeScript

sogouExplorer.tabs.executeScript(integer tabId, object details, function callback)

  1. JavaScript注入到页面中。
  2.  
  3. 参数
  4. tabId (integer)
  5. 给定标签页的ID,使JavaScript代码在这个标签页中运行。
  6. details( object)
  7. 将要注入的JavaScriptcode或者file属性必须要指定其中的一个,但不能同时指定。
  8. code( 可选 string )
  9. 将要运行的JavaScript代码。
  10. file( 可选 string )
  11. 指定包含JavaScript代码的文件。
  12. allFrames( 可选 boolean )
  13. 如果指定了allFramestrue,那么就会将代码注入到当前页面所包含的所有frames中。默认情况下,allFrames
  14. false,代码只会注入到最顶层的frame中。
  15. callback( 可选 function )
  16. JavaScript代码执行完毕之后,callback将会执行。
  17.  
  18. Callback方法
  19. 如果指定了callback,那么它的形式将如下所示:
  20. function() {...};

get

sogouExplorer.tabs.get(integer tabId, function callback)

  1. 得到指定标签页的详细信息,并在callback方法中使用这些信息。
  2.  
  3. 参数
  4. tabId ( integer )
  5. 给定标签页的ID
  6. callback( function )
  7. 当得到标签页的信息之后,callback将会执行。
  8.  
  9. Callback方法
  10. 如果指定了callback,那么它的形式将如下所示:
  11. function(Tab tab) {...};
  12. tab ( Tab )
  13. 标签页的信息。

getAllInWindow

sogouExplorer.tabs.getAllInWindow(integer windowId, function callback)

  1. 得到指定窗口中所有标签页的详细信息,并在callback方法中使用这些信息。
  2.  
  3. 参数
  4. windowId ( 可选 integer )
  5. 给定窗口的ID。默认值是当前窗口。
  6. callback( function )
  7. 当得到窗口中所有标签页的信息之后,callback将会执行。
  8.  
  9. Callback方法
  10. 如果指定了callback,那么它的形式将如下所示:
  11. function(array of Tab tabs) {...};
  12. tabs ( Tab类型的数组,包含了所有标签页的详细信息 )。

getSelected

sogouExplorer.tabs.getSelected(integer windowId, function callback)

  1. 得到指定窗口中的被选择的标签页的信息。
  2.  
  3. 参数
  4. windowId ( 可选 integer )
  5. 给定窗口的ID。默认值是当前窗口。
  6. callback( function )
  7. 当得到窗口中标签页的信息之后,callback将会执行。
  8.  
  9. Callback方法
  10. 如果指定了callback,那么它的形式将如下所示:
  11. function(Tab tab) {...};
  12. tab ( Tab )
  13. 标签页的信息。

insertCSS

sogouExplorer.tabs.insertCSS(integer tabId, object details, function callback)

  1. CSS注入到页面中。
  2.  
  3. 参数
  4. tabId (可选 integer)
  5. 给定标签页的ID,使CSS代码在这个标签页中运行。默认值是当前窗口的当前标签页。
  6. details( object)
  7. 将要注入的CSScode或者file属性必须要指定其中的一个,但不能同时指定。
  8. code( 可选 string )
  9. 将要注入的CSS代码。
  10. file( 可选 string )
  11. 指定包含CSS代码的文件。
  12. allFrames( 可选 boolean )
  13. 如果指定了allFramestrue,那么就会将代码注入到当前页面所包含的所有frames中。默认情况下,allFrames
  14. false,代码只会注入到最顶层的frame中。
  15. callback( 可选 function )
  16. CSS代码注入之后,callback将会执行。
  17.  
  18. Callback方法
  19. 如果指定了callback,那么它的形式将如下所示:
  20. function() {...};

move

sogouExplorer.tabs.move(integer tabId, object moveProperties, function callback)

  1. 将指定的标签页移动到新的位置。
  2.  
  3. 参数
  4. tabId (integer)
  5. 给定标签页的ID,使CSS代码在这个标签页中运行。默认值是当前窗口的当前标签页。
  6. moveProperties( object)
  7. windowId( 可选 integer)
  8. 给定窗口的ID。默认值是当前窗口。
  9. index( integer )
  10. 给定标签页要移动到得位置。这个值必须在0和窗口中所有标签页总数之间。
  11. callback( 可选 function )
  12.  
  13. Callback方法
  14. 如果指定了callback,那么它的形式将如下所示:
  15. function(Tab tab) {...};
  16. tab ( Tab )
  17. 标签页的信息。

remove

sogouExplorer.tabs.remove(integer tabId, function callback)

  1. 关闭指定的标签页。
  2.  
  3. 参数
  4. tabId (integer)
  5. 给定标签页的ID,默认值是当前窗口的当前标签页。
  6. callback( 可选 function )
  7.  
  8. Callback方法
  9. 如果指定了callback,那么它的形式将如下所示:
  10. function() {...};

sendRequest

sogouExplorer.tabs.sendRequest(integer tabId, any request, function responseCallback)

  1. 向指定的标签页的脚本发送一个请求,当得到了回应(response)之后callback方法将会被调用。每一个当前扩展的指定的
  2. 标签页所包含的脚本中的sogouExplorer.extension.onRequest事件将会被触发。
  3.  
  4. 参数
  5. tabId ( integer)
  6. 给定标签页的ID
  7. request( any )
  8. 任何类型的参数。
  9. responseCallback( 可选 function)
  10. 参数
  11. response( any )
  12. 返回的JSON数据类型,如果连接的过程中发生错误,那么将不会有任何的参数,并且错误的消息将会在
  13. sogouExplorer.extension.lastError保存下来。

update

sogouExplorer.tabs.update(integer tabId, object updateProperties, function callback)

  1. 修改标签页的属性。没有在updateProperties指定的属性,将不会被修改。
  2.  
  3. 参数
  4. tabId ( integer )
  5. 给定标签页的ID
  6. updateProperties ( object )
  7. url( 可选 undefined)
  8. 指定标签页访问的URL
  9. selected( 可选 boolean)
  10. 指定标签页是否被选定。
  11. callback ( 可选 function )
  12.  
  13. Callback方法
  14. 如果指定了callback中的参数,那么它应该是如下的形式:
  15. function(Tab tab) {...};
  16. tab( Tab )
  17. 标签页的信息。

事件

onAttached

sogouExplorer.tabs.onAttached.addListener(function(integer tabId, object attachInfo){…});

  1. 每当标签页被添加到窗口的时候被触发,举例来说就是标签页在窗口之间移动的时候。
  2.  
  3. 参数
  4. tabId( integer )
  5. 标签页的ID
  6. attachInfo( object )
  7. newWindowId( integer )
  8. 标签页移动到的新窗口的ID
  9. newPosition( integer )
  10. 标签页的新位置。

onCreated

sogouExplorer.tabs.onCreated.addListener(function(Tab tab){…});

  1. 每当标签页被创建的时候触发。
  2.  
  3. 参数
  4. tab( Tab )
  5. 标签页的信息。

onDetached

sogouExplorer.tabs.onDetached.addListener(function(integer tabId, object detachedInfo){…});

  1. 每当标签页脱离窗口的时候被触发。
  2.  
  3. 参数
  4. tabId( integer )
  5. 标签页的ID
  6. detachedInfo( object )
  7. oldWindowId( integer )
  8. 标签页脱离的窗口的ID
  9. newPosition( integer )
  10. 标签页的旧位置。

onMoved

sogouExplorer.tabs.onMoved.addListener(function(integer tabId, object moveInfo){…});

  1. 每当标签页脱离窗口的时候被触发。当移动标签页的时候,只会有一个move事件被触发,也就是用户直接移动的那个标签页的
  2. move事件。那些在移动过程中被迫移动的标签页并没有被触发move
  3. 件。并且move事件只能在同一个窗口中移动标签页的时候才被触发,不同窗口的时候请参考onDetached
  4.  
  5. 参数
  6. tabId( integer )
  7. 标签页的ID
  8. moveInfo( object )
  9. windowId( integer )
  10. 窗口的ID
  11. fromIndex( integer )
  12. 标签页的旧位置。
  13. toIndex( integer )
  14. 标签页的新位置。

onRemoved

sogouExplorer.tabs.onRemoved.addListener(function(integer tabId, object reniveInfo){…});

  1. 每当标签页关闭的时候被触发。
  2.  
  3. 参数
  4. tabId( integer )
  5. 标签页的ID
  6. removeInfo( object )
  7. isWindowClosing( boolean )
  8. 当标签页被关闭的时候为true

onSelectionChanged

sogouExplorer.tabs.onSelectionChanged.addListener(function(integer tabId, object selectInfo){…});

  1. 每当重新选择了标签页的时候触发。
  2.  
  3. 参数
  4. tabId( integer )
  5. 被选定的标签页的ID
  6. selectInfo( object )
  7. windowId( integer )
  8. 发生事件的窗口的ID

onUpdated

sogouExplorer.tabs.onUpdated.addListener(function(integer tabId, object changeInfo, Tab tab){…});

  1. 每当标签页被修改的时候触发。
  2.  
  3. 参数
  4. tabId( integer )
  5. 标签页的ID
  6. changeInfo( object )
  7. 提供了标签页的状态和属性变化信息。
  8. status( optional string)
  9. 标签页的状态。可以是'londing''complete'
  10. url( optional string)
  11. 标签页的URL,仅当URL改变的时候才有此属性信息。
  12. pinned( optional boolean)
  13. 标签页是否固定。
  14. tab ( Tab )
  15. 标签页的信息。

事件

Tab**( object类型 )**

  1. id( integer )
  2. 标签页的ID。这个ID在浏览器当前的session中是唯一的。
  3. index( integer )
  4. 标签页的位置信息,index的起始值是0
  5. windowId( integer )
  6. 标签页所在的窗口的ID
  7. selected( boolean )
  8. 标签页是否被选中。
  9. pinned( boolean )
  10. 标签页是否固定。
  11. url( string)
  12. 标签页所显示的URL
  13. title( optional string)
  14. 标签页的title,如果标签页还在加载的过程中,那么这个属性不可用。
  15. faviconUrl( optional string )
  16. 标签页faviconURL,同样如果标签页处在加载的过程中,那么该属性不可用。
  17. status( optional string )
  18. 标签页的状态,为'loading''complete'中的一种。

chrome有,而我们未实现的api

chrome.tabs.captureVisibleTab(integer windowId, object options, function callback)

chrome.tabs.detectLanguage(integer tabId, function callback)

chrome.tabs.getCurrent(function callback) 这个api在我们目前的架构下和tabs.getSelected行为完全一致,因此暂不实现

与chrome Tab对象的不同之处

  1. chromeTab对象中有两个属性。分别叫做incognito,和pinned。这两个属性在搜狗浏览器中都没有。
  2. incognito代表Tab是否处于隐私窗口。但是搜狗浏览器中的无痕浏览是一个全局属性,因此没有此属性。获取当前是否处于
  3. 隐私模式,请用sogouExplorer.command.getPrivacyMode(function callback);
  4. pinned代表tab是否被固定在标签栏左侧,搜狗浏览器不提供这个功能