Nano Hash - криптовалюты, майнинг, программирование

Как сопоставить один и тот же домен с несколькими расширениями в расширении Chrome?

Итак, я работаю над расширением Chrome, которое необходимо активировать на любом сайте с доменом example.extension, где extension может быть чем угодно (.com, .de и т. д.).

У меня есть контент-скрипт, и в manifest.json я включил все доменные имена, перечисленные один за другим:

"content_scripts": [{
    "js": ["content.js"],
    "matches": ["https://www.example.com/*","https://www.example.de/*"]
  }]

Но как я мог написать что-то, что соответствует example.*, вместо того, чтобы перечислять их все? Обратите внимание, что я пробовал что-то вроде этого, и это не работает:

 "content_scripts": [{
    "js": ["content.js"],
    "matches": ["https://www.example*"]
  }]


Ответы:


1

Это 2 варианта:

Первый вариант: вы используете include_globs в манифесте, как показано здесь

    "content_scripts": [{
           "js": ["content.js"],
            "matches": [ "*://*/*" ],
            "include_globs": [
                "*://*.example.*/*",
            ]
        }]

2-й вариант. Вы можете изменить сценарий содержимого, чтобы проверить, соответствует ли цель URL www.example.*:

if (window.location.host.startsWith('www.example')){
   //content script code
}
31.08.2018

2

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

background.js

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    if (changeInfo.status == 'complete' && tab.url.indexOf('https://www.example.') == 0){
        chrome.tabs.executeScript(tabId,{file:'content.js'});
    }
});
28.08.2018
  • @Csaba комментарий wOxxOm к вашему вопросу может быть даже лучше. 29.08.2018
  • Новые материалы

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

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..