Расширение 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 не получит встроенный компонент боковой панели.