Отображение всплывающего окна на странице действий - PullRequest
0 голосов
/ 10 февраля 2019

Чего мне не хватает, что всплывающее окно не отображается?

В папке расширений у меня четыре файла.Я загружаю эту папку как расширение.Я вижу значок, но при нажатии на него всплывающее окно не отображается.Почему?

  1. content_script.js: пусто (только что добавлено, чтобы я мог загрузить расширение)
  2. icon.png: отображается при загрузке расширения.
  3. manifest.json:
{
    "name": "Popup poc",
    "version": "1.4",
    "description": "Simple popup example",
    "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "js": ["content_script.js"]
        }
    ],
    "page_action": {
        "default_name": "Display Map",
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "manifest_version": 2
}
popup.html:
<!doctype html>
<html>
<head>
    <title>Popup</title>
</head>

<body>
    This is body
</body>
</html>

1 Ответ

0 голосов
/ 10 февраля 2019

Замените "page_action" на "browser_action" в вашем manifest.json.Вы должны быть в состоянии видеть всплывающее окно на всех страницах таким образом.

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


Всплывающие окна только для определенных шаблонов URL-адресов хостов

(Изменить)

Если вы хотите, чтобы ваше всплывающее окно было доступно только наДля некоторых сайтов (например, только в Google) вам необходимо указать разрешения declarativeContent в манифесте, а также небольшую настройку в фоновом скрипте.

Итак, ваш manifest.json будет выглядеть примерно такэто:

    {
        "name": "Popup poc",
        "version": "1.4",
        "description": "Simple popup example",
        "permissions": ["declarativeContent"],
        "content_scripts": [
            {
                "matches": ["https://www.google.com/*"],
                "js": ["content_script.js"]
            }
        ],
        "background": {
          "scripts": ["background.js"],
          "persistent": false
        },
        "page_action": {
            "default_name": "Display Map",
            "default_icon": "icon.png",
            "default_popup": "popup.html"
        },
        "manifest_version": 2
    }

Ваш background.js будет выглядеть следующим образом:

    chrome.runtime.onInstalled.addListener(function() {
        chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
          chrome.declarativeContent.onPageChanged.addRules([{
            conditions: [new chrome.declarativeContent.PageStateMatcher({
              pageUrl: {hostEquals: 'www.google.com'},
            })
            ],
                actions: [new chrome.declarativeContent.ShowPageAction()]
          }]);
        });
      });

Этот код в основном взят из Getting Started Tutorial .

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