Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 14 Dołączył: 27.03.2004 Skąd: Białystok Ostrzeżenie: (0%)
|
Witam, mam mały problem i najprawdopodobniej jest to banał. Mianowicie gdy tworzę zewnetrzny plik js poprzez utworzenie tagu <script> w DOMie i wywoluję zawartą w nim funkcje uzyskuję komunikat ReferenceError: user is not defined. natomiast jeśli załaduję klasycznie w htmlu ten sam plik wszystko działa bez problemu.
iframe.js w wielkim uproszczeniu
Ten post edytował SaMi 30.12.2013, 10:30:00 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%)
|
Odpowiedź na Twoje pytanie jest dość prosta. Otóż tworząc z poziomu JavaScript tag "script" i ustawiając jego źródło informujesz tym samym przeglądarkę, że ma wykonać kolejne zapytanie pod podane źródło, a więc robiąc tak:
przeglądarka zacznie wgrywać nowy adres, w tym przypadku plik skryptu znajdującego się pod ścieżką "iframe.js". Tak się składa, że nie dzieje się to natychmiast, a ładowanie następuje asynchronicznie, w tle, tak jak w przypadku XHR (XmlHttpRequest, czy krócej "AJAX"). Oznacza to, że zmienna "user" zdefiniowana w tamtym pliku nie pojawi się natychmiast, a dopiero po wykonaniu całego procesu: pobrania pliku js i wrzucenia go w dokument. Aby wykonać kod po załadowaniu tego dokumentu należy się posłużyć funkcją zwrotną ("callback'iem"):
Ten post edytował lukasz1985 30.12.2013, 22:38:33 |
|
|
|
SaMi wywołanie funkcji 30.12.2013, 09:59:49
lukasz1985 Odpowiedź kryje się w tej całej ceregieli, którą w... 30.12.2013, 10:36:09
SaMi zakradł się mały błąd który skorygowałem.
Jest to... 30.12.2013, 10:43:54
lukasz1985 [JAVASCRIPT] pobierz, plaintext function(d,s... 30.12.2013, 12:07:02
SaMi Zmieniłem na przestrzenie nazw faktycznie łatwiej ... 30.12.2013, 14:42:03 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 19:46 |