Что такое детали объекта в 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,

Итак, чтобы ответить на ваши вопросы:

  1. Чтобы получить идентификатор вкладки в первой строке, вы должны использовать 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);
        });
    });
    
  2. Действия браузера могут иметь разные заголовки на разных вкладках. Чтобы установить разные заголовки для каждой вкладки, вы должны использовать chrome.browserAction.setTitle() метод. Так что если вы отправите tabId в деталях объекта chrome.browserAction.getTitle() метод, вы не получите заголовок вкладки, вы получите только заголовок конкретного действия браузера. Чтобы получить конкретный заголовок вкладки, вы должны использовать chrome.tabs.query() метод.

Другие вопросы по тегам