показать всплывающее окно действий при нажатии - PullRequest
5 голосов
/ 04 октября 2010

Я делаю расширение Chrome, которое использует pageAction.

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

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

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

Я могу показать предупреждение, но это ужасно.

Ответы [ 2 ]

3 голосов
/ 10 октября 2010

В настоящее время нет «аккуратного» или официального способа справиться с обоими. Вы можете просто сделать либо. Но есть некоторые обходные пути, которые сделал какой-то продукт расширения Google.

Прежде всего, установите его, чтобы показать всплывающее окно. А во всплывающем окне pageAction вы можете иметь код инициализации, похожий на этот:

Всплывающее окно действия страницы:

function init() {
  if (getClickBehaviour() == 'popup')
    handlePopup();
  else
    openPage();
}

function getClickBehaviour() {
  return localStorage['CLICK_BEHAVIOR'] || 'popup';
}

function openPage() {
    chrome.tabs.create({url: 'http://google.ca'});
    window.close();
  });
}

init();

Затем вы можете позволить свои параметры, установить поведение щелчка. Если вы хотите различное поведение при каждом нажатии, вы можете сделать это тоже.

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

0 голосов
/ 05 октября 2010

Я еще не проверял это сам, но вы пытались установить всплывающее окно для пустой строки, когда вы хотите обработать щелчок (chrome.pageAction.setPopup('')), и для вашего всплывающего окна, когда вы хотите показать сообщение. Я не совсем уверен, что обработчик события onClicked вызывается в этом случае (когда всплывающее окно динамически устанавливается на пустую строку), но это стоит посмотреть.

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

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