• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Undefided w skrypcie z dynamiczną stroną

Object Storage Arubacloud
0 głosów
227 wizyt
pytanie zadane 22 września 2018 w JavaScript przez Joachim Winkowski Obywatel (1,570 p.)

Mam stronę która się ładuje dynamicznie. I próbuję z niej pobrać wartości. Ale one na samym początku mają wartość undefinded. Więc znalazłem skrypt i zastosowałem który czeka na dany element i wtedy wykonuje funkcje. Ale jak chcę zrobić to samo- tylko że z zmienną to to nie działa.

 

Skrypt który działa

var waitForEl = function(selector, callback) {
    //funkcja czekająca na dany element bo strona jest zbudowana w jquery więc elementy ładują się dynamicznie
    if (document.querySelector(selector)!=null) {//jeśli selektor nie jest pusty
        callback();//uruchom funkcję z drugiego parametru
    } else {//ale jeśli seketor jeszcze nie istnieje
        setTimeout(function() {//uruchom funkcje opóżniającą czas
            waitForEl(selector, callback);//jako pierwszy parametr-fukncja z przekazywanywanymi danymi-czyli uruchom to 
        }, 100);//co 100ms(czyli 1/10s). 1s=1000ms
    }
};

var nazwa;//deklaruje zmienną którą używam w poniższej fukcji. Ta zmienna staje się zmienną globalną a w funkcji jest tylko nadpisywana przez co można jej używać w dalszej częśli kodu
waitForEl("body>div", function() {
    //co robi ta fukkcja
    nazwa=document.querySelector("body>div").textContent.substr(3);//przypisuje do "nazwa".wyciąga z niej tekst. ucina 3 znaki z przodu
});

a tu ten który próbuję zrobić i mi nie chce działać.

var zmienna;//ma wartosc undefinded i jest globalna


function zmien_zmienna() {
        setTimeout(function() {//funkcja która zmienia nazwę zmiennej
            console.log("zmien_zmienna uruchominona");//powiadominie że zmienia zmieną
            zmienna="przykładowy";
        }, 5000);//tutaj wpisałem 5s dla przykładu ale tutaj jest randomowa liczba
}
zmien_zmienna();//uruchamiam funkcję że ona już działa
console.log(zmienna);//wyświetla zmienną-jak na razie undefinded bo zmieni się za 5s

var no_undefined=function (nazwa) {
    if (typeof nazwa !== undefined) {//tutaj nie jestem pewny jak poprawnie napisać ten warunek. bo jak skasuje typeof to nie spełnia warunku. Tak samo jak wezmę undefinded w cudzysłów.
            console.log("spełnia warunek");
            return nazwa;
            }
     else {
        setTimeout(function() {
            console.log("wejście w funkcje kolejny raz "+nazwa+" "+zmienna);
            no_undefined(nazwa);//jeśli warunek nie spełniony uruchom jeszcze raz funkcję no_undefinded przekazując argument nazwa który cały czas ma wartość undefinded
        }, 1000);
    }
}

console.log(no_undefined(zmienna));//uruchamiam funkcję no_undefinde


 

komentarz 22 września 2018 przez ScriptyChris Mędrzec (190,190 p.)
Co to znaczy, że strona jest zbudowana dynamicznie w jQuery? W jaki sposób umieszczasz te elementy na stronie?
komentarz 22 września 2018 przez Joachim Winkowski Obywatel (1,570 p.)
W znaczniku <script></script>. I tak. Strona jest zbudowana w jQuery.

A elementy dochodzą dynamicznie.
komentarz 22 września 2018 przez ScriptyChris Mędrzec (190,190 p.)
Przyczyną Twojego problemu wydaje się być niewłaściwa obsługa asynchroniczności. Dlatego pytam w jaki sposób generujesz dynamicznie treść strony - pobierasz jakieś dane z serwera i je umieszczasz w HTML? Pokaż kod, który to realizuje.
komentarz 23 września 2018 przez Joachim Winkowski Obywatel (1,570 p.)
skrypt dołączam za pomocą tampermonkey(rozszerzenia do przeglądarki) i działa on na nie mojej stronie.
komentarz 23 września 2018 przez ScriptyChris Mędrzec (190,190 p.)
Czy możesz odpowiedzieć na pytanie w jaki sposób dynamicznie dodajesz content do strony i pokazać kod? Odpowiadasz ogólnikami, które nie ułatwiają udzielenia Ci pomocy.
komentarz 24 września 2018 przez Joachim Winkowski Obywatel (1,570 p.)
Niezbyt rozumiem. A tego w jaki sposób jest dodawany kod to nie wiem. Skrypt wziołem z strony https://gist.github.com/chrisjhoughton/7890303

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
2 odpowiedzi 683 wizyt
pytanie zadane 11 lipca 2021 w HTML i CSS przez RavenTheReaper Początkujący (280 p.)
0 głosów
2 odpowiedzi 239 wizyt
0 głosów
1 odpowiedź 776 wizyt
pytanie zadane 17 kwietnia 2019 w PHP przez Whereismycode Obywatel (1,710 p.)

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...