Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вызов js-функции из определенного файла (https://javascript.ru/forum/misc/31005-vyzov-js-funkcii-iz-opredelennogo-fajjla.html)

Ceргей 23.08.2012 10:42

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

Deff 23.08.2012 11:03

Ceргей,
Прописывайте в Имени Файла короткое перечисление функций, либо добавляйте их параметром PHP скриптом к ссылке на файл
к примеру
<script type="text/javascript" src="/jquery.min.js?func=f11|f12|f13|f244"></script>

Ceргей 23.08.2012 11:27

Спасибо за отклик, но что это даст?
Допустим, добавил я <script type="text/javascript" src="/jquery.min.js?func=f11|f12|f13|f244"></script>
А как мне именно обратиться например к функции f11() в файле jquery.min.js, если после jquery загрузили другой скрипт с функцией f11(), в которой другой код, отличный от нужного, по идее выполнится последний загруженный?

Deff 23.08.2012 11:33

Ceргей,
Не так - подгружайте - скриптом -а изначальные теги вставляйте в скрытый input или техтареа
Скриптом считываете загружаемые файлы - и подгружаете их по=одному - на нужном этапе - вызываете нужную функцию - продолжаете подгрузку
Хотя имхо очень похоже на вопросы с конфликтами jQuery
Там есть функция noConflict()

Ceргей 23.08.2012 11:44

Deff, еще раз спасибо, мысль уловил. Каждый раз подгружать файл при вызове определенной функции по новой, а потом вызывать функцию.
Просто хотелось нечто такого вида, document.getElementsByTagName('script')[0].функция_файла, но как понимаю, это фантастика


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