Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Динамическая подгрузка Javascript функции (https://javascript.ru/forum/misc/44852-dinamicheskaya-podgruzka-javascript-funkcii.html)

Jnas 04.02.2014 13:35

Динамическая подгрузка Javascript функции
 
Добрый день, ув.-мые форумчанины

В яваскриптах я не силен, в гугле не нашел ответ, соответственно самым последним вариантом прошу Вашей помощи.

Интересует вопрос, возможно ли подгрузить динамическую javascript функцию.

К примеру, обращаюсь посредством ajax (jquery) к удаленному php скрипту, который дает json . Данный json имеет:
  1. json.html - динамически форма, которую внедряю в страницу. Также в этой форме есть кнопка с onclick="addCollection(this)"
  2. json.js - здесь содержится яваскпритовая функция function addCollection(t)

так вот как можно подгрузить данную функцию, которая находиться в json.js,
even не дал результата, при нажатии на кнопку функцию не находит

Заранее всем спасибо.

danik.js 04.02.2014 13:43

Можно, но через пень-колоду. Оно те надо? Функции же не берутся на сервере откуда не возьмись, правильно? Они уже изначально есть. Вот ты аккуратно запакуй все нужные функции в один файлик и загрузи на страницу сразу прям. А дальше без всякого гемора работай. И кстати тогда можешь откинуть контейнер JSON и передавать чистый HTML - это тоже будет плюсом.

Jnas 04.02.2014 13:52

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

danik.js 04.02.2014 14:09

Тогда eval в помощь.
Одиночные функции можно создавать через new Function().

Jnas 04.02.2014 14:37

Извините, не совсем понимаю, я пробовал онкликом обращаться к функции, но страница не видит данную функция , хотя я содержимое json.js через even прогоняю

danik.js 04.02.2014 14:50

Цитата:

Сообщение от Jnas
через even прогоняю

Что за "even"? Имеешь ввиду eval? Нужен глобальный eval, делается так:
eval.call(window, 'function addCollection(){}');

В jQuery есть еще $.globalEval.

Jnas 04.02.2014 14:58

Да, действительно , неверно выразился, eval, вот про глобальный eval не знал.
Спасибо большое!


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