Как (chrome.tabs) обновить всплывающее окно с помощью фонового скрипта - PullRequest
0 голосов
/ 10 ноября 2019

Я открываю магазин Chrome в полноэкранном всплывающем окне.

onclick="window.open('https://chrome.google.com/webstore/detail...', 'targetWindow', 'width=' + window.outerWidth + ',height=window.outerHeight,top=' + window.screenTop + ',left=' + window.screenLeft);

После того, как пользователь установил расширение, фокус возвращается на главную вкладку, и когда мой фоновый скрипт расширения Chrome запускает следующий код:

chrome.runtime.onInstalled.addListener(function (details) {
    if (details.reason == "install") {
      thankyou();
    }
  });

  function thankyou(){
    chrome.tabs.update({
        url: 'https://mythankyoupage.com',
        active: true
      });

  }

Проблема в том, что страница Спасибо загружена на главной вкладке, а НЕ в исходном всплывающем окне, которое теряется в фоновом режиме.

Как я могу убедиться, что спасибостраница загружена во всплывающем окне, которое использовалось для установки из магазина Chrome?

Я прочитал https://developer.chrome.com/extensions/tabs, но не смог понять, как настроить таргетинг на мое всплывающее окно

Спасибо за вашеРуководство

ОБНОВЛЕНИЕ 1:

Следуя хорошим советам из комментариев, я попробовал это: (Я пробовал без "windowType": "popup" тоже)

  function thankyou(){
    chrome.tabs.query({url: "https://chrome.google.com/webstore/detail/...", "windowType":"popup"}, function(results) {
      chrome.tabs.update({ 
        url: 'https://thankyou.com'
       })
    }

тоже попробовал:

function(results) { chrome.tabs.update(tabs[0].id, { url: 'thankyou.com', active: true }) }

, но все они привели к обновлению главного окна, а не всплывающего окна. Я удаляю каждый раз расширение (а не просто обновляю).

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