Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

Witam,
mam taką oto małą tablicę:

var Data= new Array('Data',
new Array ("pierwszaA", "drugiA"),
new Array ("pierwszaB", "drugiB"),
new Array ("pierwszaC", "drugiC"),
);


i chciałbym ją zamieścić w pliku dane.js i załadować w odpowiednim momencie w Head
<script type="text/javascript" src="http://www.domena.pl/links/dane.js">

Mój problem polega na tym, że Javascript nie widzi tablicy (zmiennej Data) z wczytanego pliku, wciąż mam błąd: TypeError: Data is undefined.

Jak prawidłowo wczytać takie dane?

pozdr.
w.
Waldemar Hornatkiewicz

Waldemar Hornatkiewicz Front-End
Webdeveloper

Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

Wojtek Kibitlewski:
Mój problem polega na tym, że Javascript nie widzi tablicy (zmiennej Data) z wczytanego pliku, wciąż mam błąd: TypeError: Data is undefined.

Jak prawidłowo wczytać takie dane?

Nie chodzi o zewnętrzny plik, tylko o przecinek przed ostatnim nawiasem. A w ogóle lepiej chyba zrobić tak:

var Data=
[
"Data",
["pierwszaA", "drugiA"],
["pierwszaB", "drugiB"],
["pierwszaC", "drugiC"]
];


I ogólnie ponoć szybsze jest deklarowanie
var tablica=[], obiekt={};
, niż
var tablica=new Array(),obiekt=new Object();
Waldemar Hornatkiewicz edytował(a) ten post dnia 15.01.10 o godzinie 15:33

Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

przecinek jest przez przypadek tutaj wstawiony..
natomiast Twój przykład nadal nie działa..

mam wrażenie, że skrypt zachowuje się tak, jakby nie widział zupełnie tablicy Data.. nie wczytał jej.. mimo, że wczytują ją w Head a funkcja z niej korzystająca jest w środku dokumentu..
Dariusz Siedlecki

Dariusz Siedlecki Rockstar Frontend
Developer

Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

Napisałeś "w odpowiednim momencie". Chodzi Ci o dynamiczne ładowanie, czy statycznie, zawsze to pobierasz w headzie?

Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

dokładnie to wygląda tak:

a) ładując stronę wywołuję w pewnym momencie funkcję
loadAndAttachScript("dane.js");
która w sekcji head umieszcza
<script type="text/javascript" src="http://www.domena.pl/links/dane.js">

b) następnie wywołuję funkcję ShowData(), a w niej jest proste

document.getElementById("Fields").innerHTML =Data[0][0] ;
Wojtek Kibitlewski edytował(a) ten post dnia 15.01.10 o godzinie 15:47
Dariusz Siedlecki

Dariusz Siedlecki Rockstar Frontend
Developer

Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

Dodaj jeszcze unload do tego skryptu, i wewnątrz onload wykonaj ten kod z Data.

Coś w rodzaju:


function loadAndAttachScript ( script ) {
var dataScript = document.createElement("script");
dataScript.getAttribute("type", "text/javascript");
dataScript.getAttribute("src", "http://www.domena.pl/links/"+ script);

daneScript.onload = function() {
ShowData();
}

document.getElementsByTagName('head')[0].appendChild(dataScript);
}

Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

kończąc temat... problemem - tak jak podejrzewałem - było "niezaładowanie" (w sensie - skrypt nie widział danych) pliku js z tablicą..
Przykładowe rozwiązanie:

do pliku index.html trzeba było dołączyć dwa pliki js w następującej kolejności

<script type="text/javascript" src="http://www.domena.pl/links/dane.js"> [czyli tablica z danymi]

<script type="text/javascript" src="http://www.domena.pl/skrypt.js"> [zawierający funkcje, które wykonują daną czynność i korzystają z tablicy]

Jeśli ktoś znalazłby jeszcze inny sposób - chętnie poznam.
Ten rozwiązuje mój problem.
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: [Javascript] Problem z pobraniem danych z pliku zewnętrznego

Na google tech talks było o ładowaniu kilku plików js w odpowiedniej kolejności: http://www.youtube.com/watch?v=52gL93S3usU#t=10m
(zaczyna się mniej więcej od 10 minuty)Janusz Skudrzyk edytował(a) ten post dnia 16.01.10 o godzinie 12:50

Następna dyskusja:

Problem z bazami danych




Wyślij zaproszenie do