(Расширение Chrome) Как прагматично открыть всплывающее окно из background.html - PullRequest
21 голосов
/ 05 апреля 2011

Заранее спасибо!

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

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

Ответы [ 4 ]

12 голосов
/ 07 апреля 2011

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

1) Задайте фоновую страницу в файле манифеста ...

"background_page": "background.html",

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

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

"permissions": [ "tabs" ],

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

3) На фоновой странице позвоните create и укажите на всплывающий URL-адрес добавочного номера.

if(condition == true){
  chrome.tabs.create({url:"popup.html"});
}
9 голосов
/ 11 июля 2012

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

6 голосов
/ 27 августа 2015

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

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

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

5 голосов
/ 05 апреля 2011

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

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

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

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

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