powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Трудности с глобальным массивом.
6 сообщений из 6, страница 1 из 1
Трудности с глобальным массивом.
    #36105622
F4101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую.
Есть необходимость поправить чужие исходники. Исходный код формирует html-страницу используя xslt со скриптами на JavaScript. Требуется одной функцией заполнить массив, другой функцией вывести его на печать. Я так думаю - нужен глобальный массив. Реализация:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<msxsl:script language="JavaScript" implements-prefix="user">
<![CDATA[ 	
   var buf = new Array();	//глобальный массив

   function FillArray(sData){  //Заполнить глобальный массив
   	buf.push(sData);
       return "";
   }

   function PrintArray()  { //Напечатать глобальный массив
   	var tmp [];
   	var ret;
   	for(var i =  0 ; i < buf.length; i++)
   	   	tmp.push(buf[i]);
   	ret = tmp.join(",");
   	return ret;
   }
]]>

При попытке запуска - ошибка. Текст ошибки приводить не буду, т.к. она специфична для СЭД DocsVision (xslt - преобразование запускается из-под этот системы). В общем я проколбасился уже сутки и методом проб и ошибок пришел к выводу, что дело в "глобальности массива". Если сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
   function PrintArray()  {
   	 var buf = new Array();	  //массив уже локальный
         buf[ 0 ] = "a";
         buf[ 1 ] = "b";
         buf[ 2 ] = "c";
         
         ret = buf.join(",");
   	return ret;
   }
то все ок. Иными словами, если в одной и той же функции, локально объявить массив и тут же его напечатать, то все работает корректно. Более того! Опыт показал, что если к глобальному массиву обратиться с явным указанием индекса (str s = buf[1];) то тоже все работает. А если взять buf[i] - то уже ошибка. Замечу, что я столкнулся и с JavaScript и с xslt-преобразованиями 2 дня назад и сделал это впервые в жизни, поэтому прошу простить меня за возможные неточности в терминологии. Вообще я по жизни в JDEdwards программирую, просто всех программеров поувольняли кроме меня. Уверен, что на самом деле задача решается двумя "кликами", но так уж вышло, что это не моя специфика. Заранее благодарен за помощь. Гугл рыл. Sql.ru рыл. Explorer 6.
...
Рейтинг: 0 / 0
Трудности с глобальным массивом.
    #36105674
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за строка такая:
Код: plaintext
var tmp [];
Если объявляешь массив, то надо
Код: plaintext
1.
2.
var tmp = [];
или
var tmp = new Array();
...
Рейтинг: 0 / 0
Трудности с глобальным массивом.
    #36105683
F4101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,

IDVsbruckА что за строка такая:
Код: plaintext
var tmp [];
[/src]

Прошу прощения, конечно же знак равенства присутствует в исходном коде.. Просто уже в глазах рябит и даже копипастить нормально не могу. Плохой из меня индус).
...
Рейтинг: 0 / 0
Трудности с глобальным массивом.
    #36105708
F4101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведу на всякий случай текст ошибки:

Не удалось отобразить HTML представление.

Описание ошибки: (0x80020009) Ошибка выполнения Microsoft JScript
Недопустимое число аргументов или присвоение значения свойства
line = 56, col = 4 (line is offset from the start of the script block).
Error returned from property or method call.

(Конец сообщения об ошибке)

в моих исходниках line 52 содержит код:

Код: plaintext
1.
   ret = tmp.join(','); 
...
Рейтинг: 0 / 0
Трудности с глобальным массивом.
    #36105945
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 минуты в инете и 2 ссылки (надеюсь, помогут): раз и два
...
Рейтинг: 0 / 0
Трудности с глобальным массивом.
    #36105975
F4101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,

Нет, к сожалению не помогло. На первой ссылке был вчера, вторую прочел по вашей рекомендации. Продолжаю копать....
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Трудности с глобальным массивом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]