chrome.browserAction.setPopup () - только локальные html-файлы? - PullRequest
1 голос
/ 09 февраля 2012

Я хотел бы динамически изменять всплывающее окно моего расширения (во время выполнения).И я хочу указать пользовательский всплывающий HTML-файл, который загружается с моего сервера.

В Firefox я могу легко сделать это с помощью XUL оверлеев , которые я могу указать во время выполнения.И document.loadOverlay () позволяет мне указать «удаленный» URL для наложения .

Возможно ли то же самое в Chrome?

Я играл с chrome.browserAction.setPopup (подробности) API , но кажется, что параметр details.popup должен указывать локальный файл, а не удаленный URL .

1 Ответ

2 голосов
/ 10 февраля 2012

Я ответил на этот же вопрос в списке рассылки Chromium-Extensions .

Нет API для загрузки внешних всплывающих окон, но вы можете сделать это с помощью простого JavaScript.Что вы могли бы сделать (я делал это в прошлом):

  • Использовать сообщения iframe + extension во всплывающем окне.Iframe указывает на некоторый внешний URL, не размещенный в расширении.
  • Используйте шаблоны (пример шаблонов jQuery), загрузите эти файлы шаблонов на фоновую страницу и просто используйте их для создания всплывающего окна.
  • Загрузите html-содержимое, используя XHR, и загрузите его во всплывающем окне, создав DOM.

Обычно я использую шаблонный подход, но я использую подход iframe для всплывающих окон, когда хочу управлять всем всплывающимна стороне сервера, поэтому мне не нужно загружать обновления в галерею расширений.Я не являюсь поклонником загрузки HTML-содержимого, шаблоны безопаснее.

Надеюсь, это помогло!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...