| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Вызов отдельных функций скрипта из файла *.js |
| Автор: AtaL 18.2.2006, 21:15 |
| Доброго времени суток. Программер я совсем начинающий, столкнулась со следующей проблемой: Допустим, есть некий manyscripts.js, содержащий множество различных функций. function fun1() {...} function fun2() {...} ... function funN() {...} [далее могут идти вызовы этих функций и др. работа скрипта] В хтмл-документе я могу запустить этот скрипт целиком через <script ... src="manyscripts.js"></script> Все выполняется, все отлично. Но как добиться, чтобы в документе в произвольных его местах можно было выполнять какую-либо отдельную (отдельные) функцию? (фактически этот js-файл, кажется, тогда библиотекой будет?) Вариант с <script ... src="manyscripts.js"> fun1(); </script> не работает. Можно, конечно, пихнуть этот набор функций в <HEAD>, но задача стоит именно на присоединяемый файл. Если можно, любой работающий пример. Хотя бы на какой-нибудь Hello Word, выводимый вызовом функции printhello(). :) |
| Автор: 12345c 18.2.2006, 21:29 |
| Не понятно, как это смогло работать. Работать будет такая строчка: <script src="manyscripts.js"></script > Она есть то же, что включение содержимого файла в текст. Далее в HTML: Вызов функции на выполнение: <script> fun1(); </script> |
| Автор: AtaL 18.2.2006, 21:59 |
| Непонятно, как это смогло работать. Прошу прощения, опечаталась. Исправила.) Да, при включении ресурса в HEAD заработало. Спасибо! С вашего позволения, усложню вопрос. Допустим, есть несколько таких вот наборов функций в нескольких файлах. Все они тоже должны без проблем подключаться и выполняться тем же способом? Если да, то что делать, если имя каких-либо различных функций в двух файлах js совпадает? Можно ли решить эту проблему, не меняя имя функции в подключаемом файле? |
| Автор: Innuendo 18.2.2006, 22:22 |
| лучше поменяйте название функций. А то не понятно к чему ссылаться |
| Автор: AtaL 18.2.2006, 22:38 |
| Innuendo, Да, это очевидный выход. Но если библиотеки написаны не мной, и изменение имени функции повлечет за собой переписывание целой библиотеки? (допустим, она часто вызывается другими функциями)? Мне интересно, теоретически возможно жестко прописать связь "источник - функция"? |
| Автор: 12345c 18.2.2006, 23:28 |
| AtaL, да, включение нескольких файлов равносильно включению их кодов в той же последовательности. Если встречаются одинаковые имена, то они переопределяются, теряя предыдущие определения (как a=1;a=2; даст a == 2). Если библиотеки поменять нельзя, но функии использовать хочется, то можно :). После определения одной замените конфликтные имена на другие, и функция сохранится под другим именем. Правда, если функция используется в той библиотеке, то будет морока по переименовке обратно при обращении к библиотеке, но тут уж сами решайте, что удобнее. |
| Автор: AtaL 19.2.2006, 01:04 |
| 12345c Спасибо! Вопрос исчерпан.) |