Я создаю расширение Chrome на определенном веб-сайте, оно должно показывать всплывающее окно.
Список веб-сайтов превышает 1000, и я не могу написать условие одно за другим, поэтому я получаю данные с помощью запроса GET, анализирую их и создаю условие на основе этого.
function conditions() {
var conditionList = []
var request = new XMLHttpRequest();
request.open('GET', 'https://raw.githubusercontent.com/vaibhavmule/ycinfo/master/ycstartup.json', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
// Success!
var ycStartups = JSON.parse(request.responseText);
Object.keys(ycStartups).forEach(function (key) {
conditionList.push(
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { urlMatches: key + '\\..*' }
})
)
})
}
};
request.send();
return conditionList;
}
chrome.runtime.onInstalled.addListener(function(details) {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([
{
conditions: conditions(),
actions: [ new chrome.declarativeContent.ShowPageAction()]
}
]);
});
});
Вот ссылка на код Github: https://github.com/vaibhavmule/ycinfo/blob/master/background.js