sogouExplorer.tabs. 对应Chrome扩展的 chrome.tabs.( http://code.google.com/chrome/extensions/tabs.html ),目的是控制标签的操作.包括创建,修改,重新排列标签页.
目录 |
API参考:sogouExplorer.tabs
方法
connect
sogouExplorer.tabs.connect(integer tabId, object connectInfo)
- 把脚本内容连接到指定的标签页。每一个在当前扩展所指定的标签下运行的脚本内容中的sogou.extension.onConnect事件
- 将被触发。
- 参数
- tabId (可选 integer)
- 指定标签页的ID。
- connectInfo( 可选 object)
- name( 可选 string )
- 将会被传入到onConnect所指定的脚本内容中。
- 返回
- ( Port )
- port可以用于指定的标签页中的脚本内容间的通信。port的onDisconnect事件会在标签页被关闭和标签页不存在的时候
- 被触发。port的定义见SogouExplorer.extension
create
sogouExplorer.tabs.create(object createProperties, function callback)
- 创建一个新的标签页。
- 参数
- createProperties ( object )
- windowId( 可选 integer )
- 指定新创建的标签页将出现在哪一个窗口之中。默认是当前窗口。
- index( 可选 integer)
- 指定新建的标签页出现在窗口中的位置。所给的值一定要在0和窗口中标签页的总数之间。
- url( 可选 string )
- 设定标签页默认访问的URL。一个标准的URL必须是(http://www.sogou.com ),而不是(www.sogou.com)。如果指定
- 的是相对路径,那么就是相对于当前页面的这个扩展。默认值是空的标签页。
- selected( 可选 boolean )
- 是否选定这个新建的标签页。默认值是true。
- callback ( 可选 function )
- Callback方法
- 如果指定了callback中的参数,那么它应该是如下的形式:
- function(Tab tab) {...};
- tab( Tab )
- 标签页的信息。
executeScript
sogouExplorer.tabs.executeScript(integer tabId, object details, function callback)
- 将JavaScript注入到页面中。
- 参数
- tabId (integer)
- 给定标签页的ID,使JavaScript代码在这个标签页中运行。
- details( object)
- 将要注入的JavaScript。code或者file属性必须要指定其中的一个,但不能同时指定。
- code( 可选 string )
- 将要运行的JavaScript代码。
- file( 可选 string )
- 指定包含JavaScript代码的文件。
- allFrames( 可选 boolean )
- 如果指定了allFrames为true,那么就会将代码注入到当前页面所包含的所有frames中。默认情况下,allFrames为
- false,代码只会注入到最顶层的frame中。
- callback( 可选 function )
- 当JavaScript代码执行完毕之后,callback将会执行。
- Callback方法
- 如果指定了callback,那么它的形式将如下所示:
- function() {...};
get
sogouExplorer.tabs.get(integer tabId, function callback)
- 得到指定标签页的详细信息,并在callback方法中使用这些信息。
- 参数
- tabId ( integer )
- 给定标签页的ID。
- callback( function )
- 当得到标签页的信息之后,callback将会执行。
- Callback方法
- 如果指定了callback,那么它的形式将如下所示:
- function(Tab tab) {...};
- tab ( Tab )
- 标签页的信息。
getAllInWindow
sogouExplorer.tabs.getAllInWindow(integer windowId, function callback)
- 得到指定窗口中所有标签页的详细信息,并在callback方法中使用这些信息。
- 参数
- windowId ( 可选 integer )
- 给定窗口的ID。默认值是当前窗口。
- callback( function )
- 当得到窗口中所有标签页的信息之后,callback将会执行。
- Callback方法
- 如果指定了callback,那么它的形式将如下所示:
- function(array of Tab tabs) {...};
- tabs ( Tab类型的数组,包含了所有标签页的详细信息 )。
getSelected
sogouExplorer.tabs.getSelected(integer windowId, function callback)
- 得到指定窗口中的被选择的标签页的信息。
- 参数
- windowId ( 可选 integer )
- 给定窗口的ID。默认值是当前窗口。
- callback( function )
- 当得到窗口中标签页的信息之后,callback将会执行。
- Callback方法
- 如果指定了callback,那么它的形式将如下所示:
- function(Tab tab) {...};
- tab ( Tab )
- 标签页的信息。
insertCSS
sogouExplorer.tabs.insertCSS(integer tabId, object details, function callback)
- 将CSS注入到页面中。
- 参数
- tabId (可选 integer)
- 给定标签页的ID,使CSS代码在这个标签页中运行。默认值是当前窗口的当前标签页。
- details( object)
- 将要注入的CSS。code或者file属性必须要指定其中的一个,但不能同时指定。
- code( 可选 string )
- 将要注入的CSS代码。
- file( 可选 string )
- 指定包含CSS代码的文件。
- allFrames( 可选 boolean )
- 如果指定了allFrames为true,那么就会将代码注入到当前页面所包含的所有frames中。默认情况下,allFrames为
- false,代码只会注入到最顶层的frame中。
- callback( 可选 function )
- 当CSS代码注入之后,callback将会执行。
- Callback方法
- 如果指定了callback,那么它的形式将如下所示:
- function() {...};
move
sogouExplorer.tabs.move(integer tabId, object moveProperties, function callback)
- 将指定的标签页移动到新的位置。
- 参数
- tabId (integer)
- 给定标签页的ID,使CSS代码在这个标签页中运行。默认值是当前窗口的当前标签页。
- moveProperties( object)
- windowId( 可选 integer)
- 给定窗口的ID。默认值是当前窗口。
- index( integer )
- 给定标签页要移动到得位置。这个值必须在0和窗口中所有标签页总数之间。
- callback( 可选 function )
- Callback方法
- 如果指定了callback,那么它的形式将如下所示:
- function(Tab tab) {...};
- tab ( Tab )
- 标签页的信息。
remove
sogouExplorer.tabs.remove(integer tabId, function callback)
- 关闭指定的标签页。
- 参数
- tabId (integer)
- 给定标签页的ID,默认值是当前窗口的当前标签页。
- callback( 可选 function )
- Callback方法
- 如果指定了callback,那么它的形式将如下所示:
- function() {...};
sendRequest
sogouExplorer.tabs.sendRequest(integer tabId, any request, function responseCallback)
- 向指定的标签页的脚本发送一个请求,当得到了回应(response)之后callback方法将会被调用。每一个当前扩展的指定的
- 标签页所包含的脚本中的sogouExplorer.extension.onRequest事件将会被触发。
- 参数
- tabId ( integer)
- 给定标签页的ID。
- request( any )
- 任何类型的参数。
- responseCallback( 可选 function)
- 参数
- response( any )
- 返回的JSON数据类型,如果连接的过程中发生错误,那么将不会有任何的参数,并且错误的消息将会在
- sogouExplorer.extension.lastError保存下来。
update
sogouExplorer.tabs.update(integer tabId, object updateProperties, function callback)
- 修改标签页的属性。没有在updateProperties指定的属性,将不会被修改。
- 参数
- tabId ( integer )
- 给定标签页的ID。
- updateProperties ( object )
- url( 可选 undefined)
- 指定标签页访问的URL。
- selected( 可选 boolean)
- 指定标签页是否被选定。
- callback ( 可选 function )
- Callback方法
- 如果指定了callback中的参数,那么它应该是如下的形式:
- function(Tab tab) {...};
- tab( Tab )
- 标签页的信息。
事件
onAttached
sogouExplorer.tabs.onAttached.addListener(function(integer tabId, object attachInfo){…});
- 每当标签页被添加到窗口的时候被触发,举例来说就是标签页在窗口之间移动的时候。
- 参数
- tabId( integer )
- 标签页的ID。
- attachInfo( object )
- newWindowId( integer )
- 标签页移动到的新窗口的ID。
- newPosition( integer )
- 标签页的新位置。
onCreated
sogouExplorer.tabs.onCreated.addListener(function(Tab tab){…});
- 每当标签页被创建的时候触发。
- 参数
- tab( Tab )
- 标签页的信息。
onDetached
sogouExplorer.tabs.onDetached.addListener(function(integer tabId, object detachedInfo){…});
- 每当标签页脱离窗口的时候被触发。
- 参数
- tabId( integer )
- 标签页的ID。
- detachedInfo( object )
- oldWindowId( integer )
- 标签页脱离的窗口的ID。
- newPosition( integer )
- 标签页的旧位置。
onMoved
sogouExplorer.tabs.onMoved.addListener(function(integer tabId, object moveInfo){…});
- 每当标签页脱离窗口的时候被触发。当移动标签页的时候,只会有一个move事件被触发,也就是用户直接移动的那个标签页的
- move事件。那些在移动过程中被迫移动的标签页并没有被触发move事
- 件。并且move事件只能在同一个窗口中移动标签页的时候才被触发,不同窗口的时候请参考onDetached。
- 参数
- tabId( integer )
- 标签页的ID。
- moveInfo( object )
- windowId( integer )
- 窗口的ID。
- fromIndex( integer )
- 标签页的旧位置。
- toIndex( integer )
- 标签页的新位置。
onRemoved
sogouExplorer.tabs.onRemoved.addListener(function(integer tabId, object reniveInfo){…});
- 每当标签页关闭的时候被触发。
- 参数
- tabId( integer )
- 标签页的ID。
- removeInfo( object )
- isWindowClosing( boolean )
- 当标签页被关闭的时候为true。
onSelectionChanged
sogouExplorer.tabs.onSelectionChanged.addListener(function(integer tabId, object selectInfo){…});
- 每当重新选择了标签页的时候触发。
- 参数
- tabId( integer )
- 被选定的标签页的ID。
- selectInfo( object )
- windowId( integer )
- 发生事件的窗口的ID。
onUpdated
sogouExplorer.tabs.onUpdated.addListener(function(integer tabId, object changeInfo, Tab tab){…});
- 每当标签页被修改的时候触发。
- 参数
- tabId( integer )
- 标签页的ID。
- changeInfo( object )
- 提供了标签页的状态和属性变化信息。
- status( optional string)
- 标签页的状态。可以是'londing'和'complete'。
- url( optional string)
- 标签页的URL,仅当URL改变的时候才有此属性信息。
- pinned( optional boolean)
- 标签页是否固定。
- tab ( Tab )
- 标签页的信息。
事件
Tab**( object类型 )**
- id( integer )
- 标签页的ID。这个ID在浏览器当前的session中是唯一的。
- index( integer )
- 标签页的位置信息,index的起始值是0。
- windowId( integer )
- 标签页所在的窗口的ID。
- selected( boolean )
- 标签页是否被选中。
- pinned( boolean )
- 标签页是否固定。
- url( string)
- 标签页所显示的URL。
- title( optional string)
- 标签页的title,如果标签页还在加载的过程中,那么这个属性不可用。
- faviconUrl( optional string )
- 标签页favicon的URL,同样如果标签页处在加载的过程中,那么该属性不可用。
- status( optional string )
- 标签页的状态,为'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对象的不同之处
- chrome的Tab对象中有两个属性。分别叫做incognito,和pinned。这两个属性在搜狗浏览器中都没有。
- incognito代表Tab是否处于隐私窗口。但是搜狗浏览器中的无痕浏览是一个全局属性,因此没有此属性。获取当前是否处于
- 隐私模式,请用sogouExplorer.command.getPrivacyMode(function callback);
- pinned代表tab是否被固定在标签栏左侧,搜狗浏览器不提供这个功能