Для связи сервера с сервером в фоновом режиме расширения Chrome требуется много времени. Таким образом, вы должны молчать, пока не придет значение ответа. Какой метод я должен использовать?
background.js
chrome.tabs.onUpdated.addListener(function (tabId, tab, changeInfo) {
let url = changeInfo.url;
if (url != localStorage.getItem('url')){
chrome.tabs.executeScript({
code: 'document.URL'
},function (domain) {
localStorage.setItem('url', domain);
})
}
else
var xhr = new XMLHttpRequest();
xhr.onload = function () {
if (xhr.status === 200 || xhr.status === 201) {
let a = JSON.parse(xhr.responseText);
let b = a.count;
let c = a.check;
if(c == true){
alert('베너가 ' + b + '개 검출된 사이트입니다.');
localStorage.setItem('blocked', changeInfo.url);
chrome.tabs.executeScript({
code: 'history.go(-1)'
})
}
else
alert('오류')
} else {
console.error(xhr.responseText);
}
};
xhr.open('POST', 'http://soylatte.kr:3000/image/check');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('url=' + changeInfo.url);
})