Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов отдельных функций скрипта из файла *.js, Вызвать 1 функцию вместо всего скрипта 
V
    Опции темы
AtaL
Дата 18.2.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 18.2.2006

Репутация: нет
Всего: нет



Доброго времени суток. Программер я совсем начинающий, столкнулась со следующей проблемой:

Допустим, есть некий manyscripts.js, содержащий множество различных функций.

function fun1() {...}
function fun2() {...}
...
function funN() {...}

[далее могут идти вызовы этих функций и др. работа скрипта]


В хтмл-документе я могу запустить этот скрипт целиком через
<script ... src="manyscripts.js"></script>

Все выполняется, все отлично.
Но как добиться, чтобы в документе в произвольных его местах можно было выполнять какую-либо отдельную (отдельные) функцию? (фактически этот js-файл, кажется, тогда библиотекой будет?)

Вариант с

<script ... src="manyscripts.js"> fun1(); </script>

не работает.

Можно, конечно, пихнуть этот набор функций в <HEAD>, но задача стоит именно на присоединяемый файл.


Если можно, любой работающий пример. Хотя бы на какой-нибудь Hello Word, выводимый вызовом функции printhello(). :)

Это сообщение отредактировал(а) AtaL - 18.2.2006, 21:54
PM   Вверх
12345c
Дата 18.2.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Не понятно, как это смогло работать. Работать будет такая строчка:
<script src="manyscripts.js"></script >
Она есть то же, что включение содержимого файла в текст.

Далее в HTML:
Вызов функции на выполнение:
<script> fun1(); </script>


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
AtaL
Дата 18.2.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 18.2.2006

Репутация: нет
Всего: нет



Непонятно, как это смогло работать.
Прошу прощения, опечаталась. Исправила.)

Да, при включении ресурса в HEAD заработало. Спасибо!

С вашего позволения, усложню вопрос.

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

Если да, то что делать, если имя каких-либо различных функций в двух файлах js совпадает? Можно ли решить эту проблему, не меняя имя функции в подключаемом файле?
PM   Вверх
Innuendo
Дата 18.2.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: 2
Всего: 6



лучше поменяйте название функций. А то не понятно к чему ссылаться smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
AtaL
Дата 18.2.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 18.2.2006

Репутация: нет
Всего: нет



Innuendo,
Да, это очевидный выход. Но если библиотеки написаны не мной, и изменение имени функции повлечет за собой переписывание целой библиотеки? (допустим, она часто вызывается другими функциями)?
Мне интересно, теоретически возможно жестко прописать связь "источник - функция"?
PM   Вверх
12345c
Дата 18.2.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



AtaL, да, включение нескольких файлов равносильно включению их кодов в той же последовательности.

Если встречаются одинаковые имена, то они переопределяются, теряя предыдущие определения (как a=1;a=2; даст a == 2). Если библиотеки поменять нельзя, но функии использовать хочется, то можно :). После определения одной замените конфликтные имена на другие, и функция сохранится под другим именем. Правда, если функция используется в той библиотеке, то будет морока по переименовке обратно при обращении к библиотеке, но тут уж сами решайте, что удобнее.
PM WWW   Вверх
AtaL
Дата 19.2.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 18.2.2006

Репутация: нет
Всего: нет



12345c
Спасибо! Вопрос исчерпан.)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1114 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.