Wpis z mikrobloga

Youtube

Mam skrypt do Youtube:
https://gist.github.com/look997/9ad33fc1ee4fa18d7e06

Mam problem z ładowaniem strony bez odświeżania.
Skrypt się nie odświeża w tym trybie.
samo popstate nie wystarczy.

Jak to rozwiązać?


function setTOFun () {
setTimeout( function () {
if (document.querySelector("#progress") == undefined) {
suBar();
}
else {
setTOFun();
}
}, 100);
}

function progressBar () {

document.querySelector("html").addEventListener("click", setTOFun, false); // Kliknięcie linka. Dodatkowo funkcja odświeżająca skrypt.

window.addEventListener("popstate", function(e) { // Do przycisków 'wstecz' i 'do przodu'.
setTOFun();
suBar();
});
}

#userscripts #webdev #userscripts
  • 17
  • Odpowiedz
@P0lip: O dziwo działa, chyba dzięki == a nie ===.

Nie szukam błędów w tym kodzie tylko chcę żeby ktoś podał rozwiązanie do problemu odświeżania strony bez odświeżania strony.

Bądź miły. :)
  • Odpowiedz
@P0lip: No tak ale ten fragment kodu działa bardzo dobrze. Oczywiście poprawiłem go po twojej uwadze na === null ale z == undefined też działało.

Pytanie jest o popstate, XHR i tego typu rzeczy. Jak obserwować załadowanie nowego filmu żeby skrypt się za każdym razem załadował przy ładowaniu filmu bez odświeżania strony - nie wiem czy wiesz ale w YT jest takie rozwiązanie ale nie zawsze jest właczone.
  • Odpowiedz
@P0lip: Tak, zmiana adresu. Mogę sobie odfiltrować niepotrzebne adresy.
Tylko jak, samo popstate dział na wstecz do przodu a nie na zwykłe ładowanie.
  • Odpowiedz
@P0lip: Ok, DZIAŁA.

Tylko i tak ciekawe, że nie ma takiego gotowego eventu. Dla przykładu jest event do zmiany hasha - hashchange. A dla całego adresu nic nie ma.
  • Odpowiedz