Исправлено и всегда вверху всплывающее окно в расширении Chrome

1

Я работаю над расширением Google Chrome, и мне нужно создать всплывающее окно, которое фиксируется в углу и всегда поверх других окон.

Я оставляю ссылку:

Изображение 174551

  • 0
    Привет, добро пожаловать в StackOverflow. Я нахожу ваше изображение трудным для интерпретации, пожалуйста, добавьте дополнительное объяснение. Благодарю.
  • 0
    Привет @MandyShaw спасибо за прием. Я разрабатываю небольшое расширение для Chrome, которое состоит из всплывающего окна imgur.com/a/eTafnyJ . Я хочу знать, как я могу сделать это окно без использования window.open и оставить его зафиксированным в правом нижнем углу. Это то же самое, что open в плавающем расширении youtube, но мне просто нужно открыть iframe
Теги:
google-chrome
popup
google-chrome-extension
popupwindow

1 ответ

0

Плохие новости...

Извините, но больше невозможно заставить окно оставаться на вершине. Однако, если вам нужно открыть окно в правом нижнем углу экрана, взгляните на этот другой ответ: открыть окно приложения Chrome в правом нижнем углу экрана.

Раньше одним из вариантов было использование chrome.windows.create({ type: 'panel' }). Панели могли иметь любой размер и положение, поддерживали всегда лучшие функции, могли отображать любую произвольную часть кода... Но теперь они исчезли, как вы можете видеть в документах:

"panel"

Устаревший в этом API. Окно в стиле панели приложений Chrome. Расширения могут видеть только их собственные окна панели.

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

Другой вариант, используемый для webKitNotifications.createHTMLNotification(), но тот тоже ушел:

Предупреждение: webKitNotifications.createHTMLNotification() в API веб-уведомлений устарел. Новый API веб-уведомлений допускает только текст. API уведомлений Chrome скоро будет доступен для стабилизации, а веб-уведомления будут обновлены, чтобы использовать новый формат богатых уведомлений.

Вы не одиноки. Многие расширения, такие как Always On Top для YouTube или Picture in Picture Viewer, опирались на всегда лучшие функции, и вы можете увидеть из плохих отзывов, что они не смогли или не захотели найти альтернативные решения.

Альтернатива для изображений

Одной из альтернатив отображать только изображения (может и не работать для вас, как вам, вероятно, и звук) было бы использование уведомления об изображении с изображением холста, которое вы можете генерировать и динамически обновлять из фонового сценария.

При таком подходе вы можете отображать анимацию/видео, но я не уверен, насколько это было бы плавно.

Альтернативное использование контекстных скриптов

Если вы хотите постоянно отображать любой произвольный код для пользователя, вы можете использовать API вкладок, чтобы отслеживать активную вкладку и вставлять на нее собственный код с помощью executeScript и insertCSS.

Три основных недостатка этого подхода заключаются в следующем:

  • Содержимое не будет отображаться мгновенно, особенно в случае видео, которое нужно загрузить первым, поэтому, когда пользователи переключают вкладки, они фактически заметят, как вводимый контент появляется снова и загружает все, что ему нужно загрузить.

  • Если Chrome сведен к минимуму или частично за пределами экрана, они могут не увидеть введенный контент.

  • Конфликт с существующим кодом на странице.

  • 0
    Большое спасибо за ответ на мой вопрос. Используйте функцию windows.create windows.create и добавьте тестовый iframe и добавьте разрешения в manifest.json, но при открытии расширения он сообщает мне следующую ошибку «расширение заблокировало запросы к серверу» Ошибка окна: imgur.com / SWGqVEB Manifest.json: imgur.com/iqJ9Kgb
  • 0
    Возможно, вам не хватает свойства web_accessible_resources в вашем манифесте. Это должен быть массив, содержащий HTML-файл, который вы загружаете в этот iframe, а также любой другой CSS, JS или изображение, которое загружает HTML-файл.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню