Я создаю расширение Chrome, мне нужно создать функцию для обнаружения изменений URL, например, youtube.com
на youtube.com/watch?v={some video id}
Я продолжал искать способ сделать это на Content.js
, но, видимо, это невозможно, и мне нужно использовать background.js
в данном конкретном случае
Сначала я имплантировал эту часть
chrome.webNavigation.((EVENT)).addListener(function() {
alert("worked");
});
, чтобы проверить, может ли chrome правильно обнаруживать изменения URL, тогда мне нужно будет подключить это к content.js
к Ajax
изменениям URL
и вернуть объект JSON
с сервера
Я видел на этой странице Расширение Chrome - webNavigation Несколько События , которые я могу использовать
События
к сожалению, ни один из них не работает должным образом, поскольку они Alert
выскакивают несколько раз (иногда 1-4 раза), когда я посещаю (перезагружаюсь или посещаю одну страницу)
Я не знаю, что мне делать, или, если есть какой-то другой способ решения такой проблемы, я довольно плохо знаком с расширением chrome и JS
.
background.js
chrome.storage.sync.get( "extensionSwitch", function(data){
if( data[ "extensionSwitch" ] == undefined ){
chrome.storage.sync.set( { "extensionSwitch" : "true" }, function() { } );
}
});
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
fetch(request.input, request.init).then(function(response) {
return response.text().then(function(text) {
sendResponse([{
body: text,
status: response.status,
statusText: response.statusText,
}, null]);
});
}, function(error) {
sendResponse([null, error]);
});
return true;
});
chrome.webNavigation.onHistoryStateUpdated.addListener(function() {
alert("worked");
});