Я заменил свой внутренний. JSON на запрос AJAX, и теперь мой код перестал работать правильно. Моя цель - написать расширение chrome, которое закрывает вкладку, если его ссылка содержит определенные ключевые слова, сохраненные в файле. JSON. Вот то, что код выглядел раньше:
chrome.webNavigation.onCompleted.addListener(closeTab, {
url: [
{urlPrefix: 'https://www.google.de/'},
{urlPrefix: 'https://sghm.eu/iserv/login'},
]
});
function closeTab(e) {
if (!e.frameId) {
chrome.tabs.remove(e.tabId);
}
}
Этот код работал для меня.
Теперь новый:
var obj = {};
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if(xhttp.readyState == 4 && xhttp.status == 200){
obj = JSON.parse(xhttp.response);
console.log(obj);
}};
xhttp.open('GET', "banned.json", true);
xhttp.send();
chrome.webNavigation.onCompleted.addListener(closeTab, obj);
function closeTab(e) {
if (!e.frameId) {
console.log("Hallo2");
chrome.tabs.remove(e.tabId);
}
}
И забанен. json file:
[
"www.google.de",
"www.youtube.com/?gl=DE"
]
Этот код теперь закрывает все вкладки независимо от ссылки или чего-либо еще. Но я не знаю почему. AJAX работает, когда консоль успешно отображает массив JSON, который был ранее загружен.