Chrome。* API中的对象详细信息是什么

时间:2014-10-16 05:45:00

标签: api google-chrome-extension method-signature

我正在从官方文档中学习Chrome扩展程序开发并学到一点但我需要通过API函数参数中的对象详细信息来理解它的含义。例如,browserAction方法 getTitle 签名之一是

chrome.browserAction.getTitle(object details, function callback)

//object details     integer    (optional) tabId

现在我写 background.js

chrome.browserAction.getTitle({}, titleShow);
function titleShow(t){
 console.log('tab title:' + t);
}

并显示我的扩展名。如您所见,我发送空白对象{}

如何在第一行获得 tabId 并使用此方法发送?

如果我们发送标签ID,此方法是否会返回标题?

1 个答案:

答案 0 :(得分:4)

您提出的问题很容易回答,只需查看the documentation,您就会看到chrome.browserAction.getTitle()方法的详细信息(以及Chrome API的所有其他方法)。< / p>

从文档中引用:

  

chrome.browserAction.getTitle(object details, function callback)

     

获取浏览器操作的标题。

     

参数:

     
      
  • 对象details:   
        
    • 整数(可选)tabId。指定选项卡以获取标题。如果未指定选项卡,则返回非选项卡特定的标题。
    •   
  •   
  • 功能callBack。 callback参数应该是一个如下所示的函数:function(string result) {...};   
        
    • string result
    •   
  •   

所以,回答你的问题:

  1. 要获取第一行的标签ID,您必须使用chrome.tabs.query()方法(see documentation),请在标签中提供您感兴趣的详细信息in并在回调中使用它的ID,如下所示:

    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        chrome.browserAction.getTitle({tabId: tabs[0].id}, function(result) { 
            console.log("Browser action title:", result);
        });
    });
    
  2. 浏览器操作可以在不同的标签上有不同的标题。要为每个标签设置不同的标题,您必须使用chrome.browserAction.setTitle()方法。因此,如果您在tabId方法的详细信息对象中发送chrome.browserAction.getTitle()您将无法获得标题标题,那么您只会获得特定于标签的标题浏览器操作。要获取特定标签标题,您应使用chrome.tabs.query()方法。