Расширение Chrome с помощью боковой панели

Я просматривал расширения Chrome, и я хотел бы создать расширение, которое взаимодействует с веб-страницей с помощью боковой панели. Таким образом, пользователь нажимает кнопку для запуска расширения, а текущая страница разбивается, а правая часть отображает мое расширение. Я попробовал ниже, но ничего не вижу (работает или нет). Я не слишком удивлен, что он не работает, поскольку у меня нет файла sidebar.html для одной вещи. Причина в том, что в манифесте я вижу это в другом посте этого сайта. Было предложено использовать строку "боковой панели" в manifest.json, но "боковая панель" даже не упоминается в документации как действительная часть синтаксиса манифеста.

manifest.json:

{
  "name": "Test 1",
  "version": "1.0",
  "description": "Test Extension 1",
  "page_action": {
    "default_icon": "icon.png",
    "default_title": "Testing",
    "default_popup": "popup.html"
   },
  "sidebar" : {},
  "permissions": [
    "experimental"
  ]
}

popup.html:

<script>
  chrome.experimental.sidebar.show();
  chrome.experimental.sidebar.expand();
  chrome.experimental.sidebar.navigate({path: "sidebar.html"});
</script>

Я включил "экспериментальный".

Спасибо за любую помощь.

Ответы

Ответ 1

Проблема в том, что теоретически вы открываете боковую панель внутри всплывающего окна, а не на текущей странице.

Вы должны добавить на страницу скрипт контента с функцией, которая открывает боковую панель. Итак, в вашем всплывающем окне вы должны просто получить текущую вкладку и затем вызвать эту функцию из нее.

Также, как сказал Борис Смус в вашем вопросе, в следующих версиях боковые панели будут сняты с производства. Поэтому я советую вам создать собственную рамку боковой панели с помощью скриптов контента.


Обновить

Чтобы помочь вам, я сделал простое расширение, которое создает боковую панель на текущей странице.

@Кертис разместил мой пример расширения на Github, его можно клонировать здесь.

Ответ 2

Я искал решение для боковой панели, и в итоге выполнить chrome.sidebar API.

Согласно боковой панели PRD, уже можно создать боковую панель:

  • вводя script в страницу, которая редактирует HTML-страницу, чтобы отобразить боковую панель, изменив DOM, чтобы вставить iframe, который загружает содержимое боковой панели с удаленного сервера.
  • введенный script может редактировать DOM напрямую, чтобы отображать боковую панель, содержимое которой передается через сообщение.

Однако есть много недостатков (объясненных в том же документе) в отношении:

Юзабилити, Производительность, Безопасность, Конфиденциальность (Расширение нюхания, а также сторонние файлы cookie) и Доступность.

Вы можете смотреть демо того, что они готовят для будущего компонента боковой панели.

Это может помочь в доставке функции быстрее, если вы запустите нить.

Обновление

Per этот комментарий, Chrome не получит встроенный компонент боковой панели.