Dies ist eine Notiz zur Überwachung von YouTube-URL-Änderungen mit JavaScript.
Da YouTube asynchrone Kommunikation verwendet, wenn zwischen Videos navigiert wird, können Benutzerskripte schwierig zu verwenden sein.
Wenn Sie ein Skript erneut ausführen möchten, wenn sich das HTML (= Video) ändert, scheint die Überwachung von URL-Änderungen ein guter Ansatz zu sein…
Normalerweise sollte hashchange funktionieren:
window.onhashchange = function() {
console.log('y')
}
window.addEventListener('hashchange', function(e){console.log('hash changed')});
document.addEventListener("hashchange", function(){cosole.log('y')});
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
Aber es scheint auf YouTube nicht zu funktionieren, also müssen Sie es so machen.
var youtubeUrl = setInterval(function(){console.log(document.location.href)} , 1000)
Beispiel für die Überprüfung von URL-Änderungen jede Sekunde und Verarbeitung bei einer Änderung:
// Verarbeitung *1
var youtubeUrlPrevious = document.location.href
var youtubeUrl = setInterval(function(){
if (document.location.href==youtubeUrlPrevious){
} else {
// Verarbeitung *2
youtubeUrlPrevious = document.location.href
}
} , 1000)
Verarbeitung 1 ist die Verarbeitung, die Sie vor der URL-Änderung durchführen möchten Verarbeitung 2 ist die Verarbeitung, die ausgeführt wird, wenn sich die URL ändert Also, grundsätzlich sollten Sie dieselbe Verarbeitung in Verarbeitung 1 und 2 schreiben.