我正在从官方文档中学习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,此方法是否会返回标题?
答案 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
。
所以,回答你的问题:
要获取第一行的标签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);
});
});
浏览器操作可以在不同的标签上有不同的标题。要为每个标签设置不同的标题,您必须使用chrome.browserAction.setTitle()
方法。因此,如果您在tabId
方法的详细信息对象中发送chrome.browserAction.getTitle()
,您将无法获得标题标题,那么您只会获得特定于标签的标题浏览器操作。要获取特定标签标题,您应使用chrome.tabs.query()
方法。