Исправлено и всегда вверху всплывающее окно в расширении Chrome - PullRequest
0 голосов
/ 29 октября 2018

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

Я оставляю эталонное изображение:

enter image description here

1 Ответ

0 голосов
/ 30 октября 2018

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

Извините, но больше нельзя заставить окно оставаться всегда сверху. Однако, если вам нужно только открыть окно в правом нижнем углу экрана, взгляните на этот другой ответ: Как открыть окно приложения 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 свернут или частично находится за пределами экрана, они могут не увидеть введенный контент.

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

...