Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2013, 12:27
Интересующийся
Отправить личное сообщение для Sinot Посмотреть профиль Найти все сообщения от Sinot
 
Регистрация: 03.02.2012
Сообщений: 12

Получить функцию JavaScript (PHP, AJAX, jQuery)
Приветствую всех.

Можно с помощью jQuery и $.ajax() получить JavaScript.
Код:
$.ajax({
 url: './scipt.js',
 type: 'POST',
 dataType: 'script'});
script.js:
Код:
alert('123');
В итоге скрипт загрузится и сразу выполнится. (выведет "123")

Можно с помощью jQuery и $.ajax() получить данные (JSON).
Код:
$.ajax({
 url: './data.php',
 type: 'POST',
 success: function(data, textstatus){
  if(textstatus != 'success'){
   alert(textstatus);
   return;}

  alert(data.tmp);},
 dataType: 'json'});
data.php:
Код:
<?php
 $res['tmp']=123;
 echo json_encode($res);
?>
Получили данные и вывели. (выведет "123")

В общем ничего не обычного. А вот теперь вопрос, как поучить функцию JavaScript? Желательно (да чего уж необходимо) вместе с данными.
Должно получится что-то типа того:
Код:
var dat;
var func;
$.ajax({
 url: './data.php',
 type: 'POST',
 success: function(data, textstatus){
  if(textstatus != 'success'){
   alert(textstatus);
   return;}

  dat = data.dat;
  func = data.func;},
 dataType: 'json'});

//А далее обращаться как к функции
func();
alert(dat);
Возможно ли такое? И если да, то как? (пример, ссылки, хоть что-нибудь)

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2013, 12:34
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Возможно. Просто напишите в .js файле её объявление
doCoolStuff = function() {
  alert('123');
}
Правда , в таком случае она станет глобальной, что не очень хорошо. Другой вариант — указать что-то вроде
(function() {
  return function() {
    alert('123');
  };
})()
, подгружать содержимое файла с помощью XHR, а потом выполнять eval
var fnc = eval(data)
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2013, 12:35
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

если я прально понял то поможет eval
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2013, 13:32
Интересующийся
Отправить личное сообщение для Sinot Посмотреть профиль Найти все сообщения от Sinot
 
Регистрация: 03.02.2012
Сообщений: 12

B@rmaley.e><e, animhotep,
Ох щи.
Я то копал в сторону передачи данных как объектов JavaScript, но похоже не судьба. А вот функции преобразования не догадался поискать.
Спасибо большое.

P.S. Для jQuery есть аналогичная функция $.globalEval(). В отличии от eval() выполняет заданный скрипт в глобальной области видимости. Но в моем случае она не пригодится.

Последний раз редактировалось Sinot, 04.02.2013 в 13:34.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск php скрипта через ajax hagen3 AJAX и COMET 2 09.09.2011 03:51
выборка идентификатора при помощи jQuery из цикла PHP... xormax jQuery 4 27.04.2011 13:59
Javascript + jQuery для начинающих видеоформате tamerlan_93 Общие вопросы Javascript 3 26.04.2011 01:04
Как в jQuery получить доступ к фрейму или самому верхнему окну? Neokortex jQuery 7 20.12.2010 10:38
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34