PDA

Показать полную графическую версию : Помогите с JavaScript


arruk
26-08-2005, 18:48
Я хочу включить в свою страницу файлы с именами 1.js, 2.js и т.д.
В файлах находятся переменные, типа:
a="123";
b="456";
причем в каждом файле одинаковые переменные. Я хочу создать из них массив, типа ArrA[i]=a; - и таким образом заполнить его в цикле.

Не знаю, как это сделать.

Пробовал написать примерно так:

<script language=javascript>
for(.....

document.write("<sc"+"ript language=javascript src="+i+".js></sc"+"ript>");
ArrA[i]=a;
ArrB[i]=b;
...
и т.п.

</script>

Но проблема в том, что файлы с этими переменными не сразу включаются в мою страницу, а включаются только после строки </script>. Поэтому у меня не получается присваивать значения массиву.

Что же мне делать?

XCodeR
27-08-2005, 12:01
Ээээ....
<script language=JS src="<путь к файлу>">
вот так, должно получится....

XCodeR
27-08-2005, 12:02
не дописал:
а потом пишите еще раз script и делаете массив...
во только не понятно, зачем анцы с бубном? не сделать 1 файл?...

arruk
28-08-2005, 21:52
Xcode
Мне нужно подключать разные файлы, причем заранее неизвестное количество - сделать в одном файле не смогу.

Если можно, напишите поподробнее - мне надо в цикле перебирать эти имена и включать их. Напишите, пожалуйста, как это должно выглядеть вместе с циклом.

XCodeR
28-08-2005, 23:24
на самом деле с JS особо не дружу, но могу посоветовать использовать связку PHP + JS... PHP пишем JS подключения нужных файлов(томеж <script src...>)? а потом уже саму оброботку их...
(скорре всего ничего не понятно => нужно подождать ответа более компитентных людей)

Prisoner
29-08-2005, 10:23
Вы лучше в самих файлах, которые подключаете, сразу пишите массив значений. Причем массив ассоциативный лучше (так можно будет получить значение по имени переменной). А при подключении массив не нужно будет формировать.

arruk
29-08-2005, 12:41
Prisoner
Я бы не против, но у меня условие такое:

В файлах находятся переменные, типа:
a="123";
b="456";
причем в каждом файле одинаковые переменные.

Prisoner
29-08-2005, 19:42
Так... а почему в каждом включаемом файле не писать что-то вроде
arr = new Array();
arr['a'] = '123';
arr['b'] = '456';
arr['c'] = '789';
Будет происходить переопределение массива при каждом "инклуде"... наверное :)

arruk
29-08-2005, 22:30
Prisoner

Когда я делаю инклюды в цикле, то не могу при этом обрабатывать включенные массивы, т.к. все функции обработки выполняются только после включения всех файлов.

Вот мой главный файл:
<script language=javascript>

for(i=0;i<3;i++){
document.write("<sc"+"ript language=javascript src="+i+".js></sc"+"ript>");
}
for(i=0;i<3;i++){
document.write(Arr[ i]+","); // Эта строчка ничего не выводит.
}

</script> // После этой строки включаются все файлы. При этом остаются значения из последнего файла.
<script language=javascript>
for(i=0;i<3;i++){
document.write(Arr[ i]+","); // Эта строчка выводит массив в виде: undefined,undefined,789,
}
</script>

Подскажите, как мне написать цикл, чтобы я мог обрабатывать каждый файл сразу после его включения.

Prisoner
30-08-2005, 10:40
Лично я бы сделал всего один инклюд некого js-файла (something.js) который являлся бы простым php-скриптом и генерил валидный js-код массива... это самое, имхо, рациональное решение при наличии php на хосте. Остальное - от лукавого, будем пробовать?

arruk
30-08-2005, 12:52
Prisoner

Хост не мой. php там запрещено. :-(

Prisoner
31-08-2005, 09:41
Включаемые js-файлы полностью под твоим контролем?

arruk
31-08-2005, 21:45
Prisoner

Да, но есть некоторые соображения, чтобы они были с одинаковыми переменными.

Prisoner
01-09-2005, 09:52
Можно сделать один включаемый js-файл и уже в нем решать какие переменные и чем означивать и сразу массивом причем делать это. А еще советую почитать тему по хостингу этого форума и найти хостинг занахаляву, но с php, есть такие...




© OSzone.net 2001-2012