Два файла, две функции, но с одним именем
Здравствуйте... Ситуация:
Есть стороннее приложение (на Delphi) оно генерирует файлы .JS, все файлы однотипные, в каждом по две функции предположим Func1 и Func2 и имена у этих функций одинаковые во всех файлах, а возвращают они разные значения, т.к. в каждом файле определен массив с уникальными элементами т.е. массив называется Arr1 во всех файлах, а элементы массива во всех файлах разные... Мне необходимо сделать так, что бы массивы из файлов выводились последовательно, нечто вроде: <br> <h1>Arr1 in File1.JS:</h1>*Значение массива из первого файла* <br> <h1>Arr1 in File2.JS:</h1>*Значение массива из второго файла*Так собственно вопрос как обратиться к функции в конкретном файле? P.S. на JS пишу около трех дней, всегда работал с C++ и Delphi |
Janom,
1.Функция исполняется при загрузке файла? 2. Не проще ли сменить имена функций на разные ?(тогда можно сразу загрузить оба файла или объединить в один |
1. Нет функцию нужно выполнить по клику...
2. Тоже нет, файлов может быть и не два и не три, а целая тонна... Бошка уже гудит, не верю что нельзя что-то придумать, в том же делфи это делается без проблем, думаю и тут есть кокой-то способ... |
Janom,
Можно скрипта будет четыре 1. Подгружает первый файл 2. и выполняет функцию 3. Подгружает второй файл 4. и выполняет функцию Или 1. Подгружает первый файл 2. и Переименовывает функции добавляя +'_1' к имени 3. Подгружает второй файл 4. и Переименовывает функции добавляя +'_2' к имени И выполняет обе функции |
можно пример как реализовать?
|
<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,
Cделать можно всё, но имхо организация кода свидетельсвует о желании избежать переделок исходников, и делать небоскрёб ради иходного Г - не айс. Проще добавить "2" ко всем именам функций во втором файле' Тогда загружать оба файла и вызывать все нужные функции по кнопке из обоих файлов |
да суть в том что файлы генерируются и их может и не два вовсе быть... а пять например или 10, их число я не знаю, но это как раз не беда...
|
Janom,
Делать разные функции, имя функции связать с именем файла, (тупо добавлять имя или изменяемую часть Это как "два пальца" на РНР отправляющим файл, если есть проблемы это сделать при создании файла |
так я этого и добиваюсь, просто не знаю как это сделать) может примерчик покажете?
|
Janom,
В раздел PHP напишите |
понял, спасибо)
|
Здравствуйте, уважаемые) Вообщем проблему смог решить небольшой сменой концепции и библиотекой http://scriptjava.net/source/scriptjava/scriptjava.js, работает на ура... Но столкнулся с новой проблемой, как я понял спустя 2 минуты поиска в гугле через JS добраться до буфера обмена невозможно (с небольшим исключенIEм), но можно прикрутить Flash, который в свою очередь может скопировать нужный мне текст в буфер... и так, сложность: вообщем данное действие необходимо выполнять на локальной машине (по этой же причине пришлось отказаться от PHP), да еще и не одной а с возможность переносить на папку с прогой, *.js файлами которые она генерировала и моим файлом Index.html в котором я и пишу все эти скрипты... Вот собственно пример приемо-передачи JS<->Flash и не долго думая просто сохранил страницу и скачал bridge.swf запустил, но чуда не произошло - передачи не было... Как можно выкрутиться в этой ситуации?
|
|
Да и этот пример я тоже пробовал, у меня на не копирует... причем никак не могу въехать почему... может знаете в чем может быть причина?
|
|
Вложений: 1
Не можешь попробовать запустить это на локальной машине? Вот как пытаюсь сделать я, но работать оно не хочет...
|
Janom,
На локалке не работает, проверил свою тест страницу |
икс игрек ёво, похоже вариантов больше нет, тогда остается только такая байда (нашел здесь, но ссылку на автора не сохранил):
function ClBrd(text){ if (window.clipboardData){ window.clipboardData.setData("Text", text); alert ("Нужная строка добавлена в буфер обмена."); }else{ var DummyVariable = prompt('Буфер обмена заблокирован браузером, нажмите Ctrl+C для копирования этой строки:',text); } } |
Часовой пояс GMT +3, время: 04:17. |