Во время разработки расширения Chrome столкнулся с трудностями при создании боковой панели с несколькими заголовками.
Согласно руководству setObject
установите объект как содержимое боковой панели, но только с одним заголовком:
sidebar.setObject({ some: 'qwe' }, 'title');
И результат следующий:
Но моя цель - установить объект для удовлетворения следующего:
Я пытался использовать multi setObject
, но, как я ожидал, он не добавляет данные, а перезаписывает их. Я знаю о setPage
и возможности установить такой объект через JS, но меня интересует решение с простым Chrome API инструменты
2 ответа
Невозможно использовать setObject a> для этой цели, потому что он всегда удаляет предыдущие объекты (в строке 307), как в вашем тестировании. Таким образом, существует только один объект с одним разделом заголовка / заголовка.
Если вы посмотрите на источник панели боковой панели eventListener вы можете видеть, что он строит страницу, а не использует setObject
, используя функции, которые недоступны для расширения, и строит это дерево само по себе (так что на самом деле нет чистого конструктора для этого типа представления, который может быть открыт. Но логику, необходимую для такой страницы боковой панели, легче понять в properties Sidebar Pane, чем eventListener Sidebar Pane
, если вам не нужны представления с фильтрами и т. д.)
Чтобы получить представление, вы можете скопировать CSS из источника для страницы, которую вы предоставляете через setPage
.
На самом деле это довольно просто. Вам необходимо избавиться от title
, который является необязательным и, если он предоставляется, служит корнем < / strong> дерева выражений. (источник: DevTools API).
Следовательно, если вы вызовете setObject
следующим образом:
var jsonObj = {
first: {some: 'foo'},
second: {some: 'bar'},
third: {some: 'baz'}
};
sidebar.setObject(jsonObj);
Ты получишь :
Обратите внимание, что вывод немного отличается от боковой панели Прослушиватели событий , поскольку мы просто выводим объект JSON. Но это может соответствовать вашим потребностям, и лично я считаю полезным иметь сводку, не открывая каждый элемент. Если вам нужно именно то, что отображается на боковой панели Event Listener , думаю, вам нужно посмотреть дальше setObject
Похожие вопросы
Новые вопросы
google-chrome
[google-chrome] предназначен для вопросов, связанных с разработкой с помощью Google Chrome, веб-браузера, использующего механизм рендеринга Blink. Предупреждение! Общая поддержка браузера не по теме: вопросы по использованию или настройке браузера следует размещать на https://superuser.com. Chrome OS и Chromium не по теме: вопросы о [google-chrome-os] или [chromium] должны использовать эти теги.