Как обеспечить, чтобы расширение chrome не работало только с локальными файлами HTML - PullRequest
0 голосов
/ 27 мая 2019

Я работал над расширением Chrome, которое частично предназначено для извлечения общедоступных данных с определенных страниц в домене, подобном https://secure.state.gov/.. Для разработки я сохранил некоторые файлы HTML локально итестирование с тех.Теперь, когда он у меня работает, я хотел бы попробовать расширение с несколькими открытыми общедоступными страницами.Но когда я нажимаю на расширение в этом домене, все, что появляется, - это стандартное меню расширений Google, а не созданный мной popup.html, который работает на локальных страницах.Это поведение одинаково на любой веб-странице, кроме локальных HTML-страниц.

В файле манифеста я попытался добавить "" как для прав доступа, так и для content_scripts.

    "name": "APPNAME!",
    "version": "1.0",
    "description": "DESCRIPTION REDACTED!",
    "permissions": ["activeTab", "declarativeContent", "storage" , "*://secure.state.gov/*", "<all_urls>"],
    "background": {
      "scripts": ["background.js"],
      "persistent": false
    },
    "options_page": "formMenu.html",
    "page_action": {
      "default_popup": "popup.html",
      "default_icon": {
        "16": "images/get_started16.png",
        "32": "images/get_started32.png",
        "48": "images/get_started48.png",
        "128": "images/get_started128.png"
      }
    },
    "icons": {
      "16": "images/get_started16.png",
      "32": "images/get_started32.png",
      "48": "images/get_started48.png",
      "128": "images/get_started128.png"
    },
    "manifest_version": 2,
    "content_security_policy": "script-src 'self' https://code.jquery.com https://cdnjs.cloudflare.com https://stackpath.bootstrapcdn.com https://use.fontawesome.com; object-src 'self'",
    "content_scripts": [{
      "matches": ["<all_urls>"],
      "js": ["payload.js"],
      "run_at": "document_end"
  } ]
  }

Нет сообщений об ошибкахрезультат.Я просто получаю меню расширений по умолчанию («Этот сайт может читать и изменять данные сайта>», «Параметры», «Удалить из Chrome», «Скрыть в меню Chrome», «Управление расширениями», Проверить всплывающее окно)

1 Ответ

0 голосов
/ 28 мая 2019

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

'use strict';

chrome.runtime.onInstalled.addListener(function() {

  chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
    chrome.declarativeContent.onPageChanged.addRules([{
      conditions: [
        new chrome.declarativeContent.PageStateMatcher({
          pageUrl: {
            hostEquals: ''
          },
        }),
        new chrome.declarativeContent.PageStateMatcher({
          pageUrl: {
            hostContains: 'secure.state.gov'
          },
        })
      ],
      actions: [new chrome.declarativeContent.ShowPageAction()]
    }]);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...