Javascript.RU

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

Как вынести переменную за объект javascript
function gethtml(p){
		link = String(p).substr(strrpos(String(p), '/' ), strlen(String(p)));
		$.ajax({
			url: link,
			success: function(data){
				window.html = hand(data,'<bo' + 'dy class=center>','</bo' + 'dy>');
			};
		});
		return html;
	};

Вопрос таков: "Как вынести переменную html из объекта?"
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2013, 16:31
Аспирант
Отправить личное сообщение для skfyann Посмотреть профиль Найти все сообщения от skfyann
 
Регистрация: 27.12.2011
Сообщений: 90

Я, конечно извиняюсь, но из какого объекта?
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2013, 17:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

lixa4,
Никак(поскольку асинхронное получение) - просто запускайте из аякса функцию обработчик
function setHTML(html){
  //Тут Ваши дествия
}
function gethtml(p){
		link = String(p).substr(strrpos(String(p), '/' ), strlen(String(p)));
		$.ajax({
			url: link,
			success: function(data){
				window.html = hand(data,'<bo' + 'dy class=center>','</bo' + 'dy>');
			};
		});
		setHTML(html);
	};
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2013, 18:33
Новичок на форуме
Отправить личное сообщение для lixa4 Посмотреть профиль Найти все сообщения от lixa4
 
Регистрация: 07.01.2013
Сообщений: 7

Он не видит переменную и не инициализирует её не при каких обстоятельствах за функцией внутри объекта ajax..
моя цель - возвратить эту переменную из основной функции "getHTML".
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2013, 18:38
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Это просто напросто невозможно.
когда ты получишь переменную html, функция success ещё несработает, и значение установить твоей переменной неуспеет.

это асинхронное программирование, незабывай.

вариант решения
function gethtml(p,callback){
		link = String(p).substr(strrpos(String(p), '/' ), strlen(String(p)));
		$.ajax({
			url: link,
			success: function(data){
				callback ( hand(data,'<bo' + 'dy class=center>','</bo' + 'dy>') );
			};
		});
		setHTML(html);
};

//используем
gethtml("бла бла",function(data){
     alert (data);
})

ещё это можно было бы решить функциональным стилем, но это слишком для этого примера, да и сложнее порядка на два. Сначало с асинхронным разберись.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 07.01.2013 в 19:01.
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2013, 18:45
Новичок на форуме
Отправить личное сообщение для lixa4 Посмотреть профиль Найти все сообщения от lixa4
 
Регистрация: 07.01.2013
Сообщений: 7

возможно, всё возможно. Установив таймаут на 100 миллисекунд можно получить переменную внутри таймаута, однако как вынести её оттуда я тоже незнаю.
function gethtml(p){
		setTimeout('var a = html; alert(a);', 100);
		// В этом случае у нас всё выводит, но вынести переменную за таймаут мне не удалось =(
		link = String(p).substr(strrpos(String(p), '/' ), strlen(String(p)));
		$.ajax({
			url: link,
			success: function(data){
				window.html = hand(data,'<bo' + 'dy class=center>','</bo' + 'dy>');
			}
		});
	};
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2013, 19:00
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

lixa4,
Блин ну вынесешь ты её - но те все одно нужно запустить ункцию и передать текущее полученные данные.
Смысл в споре? - Обрамить обработку результата в функцию и поставить вызов в Аяксе
Если оно сначала использется на странице - сделать вызов обработки результата до аякса в теле страницы
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 08:19
Как передать картинку из javascript в php KIVagant AJAX и COMET 3 12.05.2010 11:54
Как обозначить переменную выбранную в FileChooser? woo_hoo Общие вопросы Javascript 4 03.07.2008 12:58