Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Два файла, две функции, но с одним именем (https://javascript.ru/forum/misc/34892-dva-fajjla-dve-funkcii-no-s-odnim-imenem.html)

Janom 23.01.2013 14:39

Два файла, две функции, но с одним именем
 
Здравствуйте... Ситуация:
Есть стороннее приложение (на Delphi) оно генерирует файлы .JS, все файлы однотипные, в каждом по две функции предположим Func1 и Func2 и имена у этих функций одинаковые во всех файлах, а возвращают они разные значения, т.к. в каждом файле определен массив с уникальными элементами т.е. массив называется Arr1 во всех файлах, а элементы массива во всех файлах разные... Мне необходимо сделать так, что бы массивы из файлов выводились последовательно, нечто вроде:
<br>
<h1>Arr1 in File1.JS:</h1>*Значение массива из первого файла*
<br>
<h1>Arr1 in File2.JS:</h1>*Значение массива из второго файла*
Так собственно вопрос как обратиться к функции в конкретном файле?
P.S. на JS пишу около трех дней, всегда работал с C++ и Delphi

Deff 23.01.2013 14:47

Janom,
1.Функция исполняется при загрузке файла?
2. Не проще ли сменить имена функций на разные ?(тогда можно сразу загрузить оба файла или объединить в один

Janom 23.01.2013 15:22

1. Нет функцию нужно выполнить по клику...
2. Тоже нет, файлов может быть и не два и не три, а целая тонна...
Бошка уже гудит, не верю что нельзя что-то придумать, в том же делфи это делается без проблем, думаю и тут есть кокой-то способ...

Deff 23.01.2013 15:35

Janom,
Можно
скрипта будет четыре
1. Подгружает первый файл
2. и выполняет функцию
3. Подгружает второй файл
4. и выполняет функцию


Или
1. Подгружает первый файл
2. и Переименовывает функции добавляя +'_1' к имени
3. Подгружает второй файл
4. и Переименовывает функции добавляя +'_2' к имени
И выполняет обе функции

Janom 23.01.2013 15:42

можно пример как реализовать?

Deff 23.01.2013 15:59

<div id="SavScript"></div>
<script type="text/javascript">
var src="http://code.jquery.com/jquery-latest.js";
var a=document.createElement('script');
a.setAttribute('src',src)
document.getElementById('SavScript').appendChild(a);
</script>

<script type="text/javascript">
alert('Загрузили и выполнили\n'+$("#SavScript").html());//Исполняем функции файл 1;
</script>

<script type="text/javascript">
var src="Тут ссылка на файл2";
var a=document.createElement('script');
a.setAttribute('src',src)
document.getElementById('SavScript').appendChild(a);
</script>

<script type="text/javascript">
//Тут Исполняем функции файл 2;
</script>

Janom 24.01.2013 10:26

Спасибо, принцип понял... Вот только все равно не догоню, а как заставить это работать за один клик по кнопке? Что бы все файлы и нужные скрипты обработались и выдали результат на страницу?
Пробовал провернуть это все в цикле, но не тут-то было...

Deff 24.01.2013 11:23

Janom,
Cделать можно всё, но имхо организация кода свидетельсвует о желании избежать переделок исходников, и делать небоскрёб ради иходного Г - не айс. Проще добавить "2" ко всем именам функций во втором файле'

Тогда загружать оба файла и вызывать все нужные функции по кнопке из обоих файлов

Janom 24.01.2013 11:25

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

Deff 24.01.2013 11:30

Janom,
Делать разные функции, имя функции связать с именем файла, (тупо добавлять имя или изменяемую часть
Это как "два пальца" на РНР отправляющим файл, если есть проблемы это сделать при создании файла


Часовой пояс GMT +3, время: 09:27.