Подтвердить что ты не робот

Как программно открыть всплывающее окно расширения Chrome из background.html

Спасибо заранее!

То, что я хочу достичь, - это открыть всплывающее окно, когда специальный тег обнаружен на веб-странице с помощью моего расширения. После некоторого времени поиска кажется, что всплывающее окно можно открыть, только когда пользователь нажимает на расширение. Это правда?

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

4b9b3361

Ответ 1

Невозможно открыть окно расширения без нажатия на него пользователя... Однако вы можете открыть всплывающее окно расширения на новой вкладке следующим образом:

1) Установите свой фоновый рисунок в файле манифеста...

"background_page": "background.html",

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

2) Включите вкладки в файле манифеста...

"permissions": [ "tabs" ],

Это разрешение необходимо для шага 3 (позволяет фоновой странице открывать новую вкладку)

3) На исходной странице вызовите create и укажите URL-адрес расширения.

if(condition == true){
  chrome.tabs.create({url:"popup.html"});
}

Ответ 2

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

Ответ 3

Вы не можете подделать щелчок по действию браузера, но вы по-прежнему можете открыть всплывающее окно из фона script, как обычно, и всплывающее окно будет работать, как ожидалось. Так, например, html-страница действия вашего браузера - "popup.html"

window.open("popup.html", "extension_popup", "width=300,height=400,status=no,scrollbars=yes,resizable=no");

Примечание: вы можете вызывать его только из фона script (страница события). Поэтому вам необходимо зарегистрировать фон script в вашем файле манифеста и добавить обработчик событий, который откроет всплывающее окно. Вы можете прочитать больше о страницах событий здесь https://developer.chrome.com/extensions/event_pages

Ответ 4

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

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

Если ваше всплывающее окно не содержит ничего необычного, возможно, вам будет достаточно уведомлений на рабочем столе.

Создание нового окна и размещение его под строкой URL было бы довольно неудобным решением и не очень удобным для пользователя.