Что такое детали объекта в Chrome.* API
Я изучаю разработку расширений Chrome из официальной документации и немного узнал, но мне нужно понять, что это значит под деталями объекта в параметрах функции API. Например, один из методов браузера GetAitle подписи метода
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 в первой строке и отправить его этим методом?
Этот метод возвращает заголовок вкладки, если мы отправляем идентификатор вкладки?
1 ответ
Вы задаете вопросы, на которые легко ответить, просто проверьте документацию, и вы увидите подробности chrome.browserAction.getTitle()
метод (и все другие методы API Chrome).
Цитирование из документации:
chrome.browserAction.getTitle(object details, function callback)
Получает заголовок действия браузера.
Параметры:
- объект
details
:
- целое число (необязательно)
tabId
, Укажите вкладку, чтобы получить заголовок. Если вкладка не указана, возвращается заголовок, не связанный с вкладкой.- функция
callBack
, Параметр обратного вызова должен быть функцией, которая выглядит следующим образом:function(string result) {...};
- строка
result
,
Итак, чтобы ответить на ваши вопросы:
Чтобы получить идентификатор вкладки в первой строке, вы должны использовать
chrome.tabs.query()
метод ( см. документацию), запросите вкладку с интересующей вас информацией и используйте ее идентификатор в обратном вызове, что-то вроде этого: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()
метод.