Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2013, 14:58
Новичок на форуме
Отправить личное сообщение для Markus Посмотреть профиль Найти все сообщения от Markus
 
Регистрация: 19.04.2012
Сообщений: 3

Вернуть результат ajax в переменную
Приветствую всех!

Есть следующая задача.
function testfunction() {
	var objForm = $('testform');
	var myCallback = function(responseText) {
		var result = Json.evaluate(responseText);
		return;
    }

	var opt = {
	    method: 'post',
	    data: objForm,
	    onComplete: myCallback,
		evalScripts: true
	}
	new Ajax(siteURL + '/index.php', opt).request();
	return false;
}


При клике по ссылке вызывается функция testfunction(), которая отправляет посредством аякса запрос на сервер и в зависимости от данных формы возвращает набор данных.
После чего, используя полученные данные необходимо открыть окно
window.open(URL, "blank", 'scrollbars=0, resizable=1, menubar=0, left=' + left + ', top=' + top + ', width=' + width + ', height=' + height + ', toolbar=0, status=0');


Все работает если открытие окна происходит в теле callback функции, но в этом случае браузер блокирует это окно.
Если же открывать это окно после строки отправки запроса
new Ajax(siteURL + '/index.php', opt).request();

браузер открывает это окно даже не пискнув. Я так понимаю что он блокирует окно которое открывается имеено из callback функции, как-будто оно открывается без ведома пользователя.
Вопрос в следующем: как заставить браузер не блокировать окно, либо как вернуть данные из callback функции и выполнить скрипт с этими данными вне callback функции.
Буду рад любой помощи. просто ткните в какую сторону копать
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2013, 15:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Как я понимаю, браузер блочит окна, открываемые скриптом, не вызванным действием пользователя. Создайте кнопку Показать результат или чета типа этого, и уже обработчиком onclick открывайте окно. Либо используйте какой-нибудь лайтбокс если подходит.
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2013, 18:46
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Markus,
Открытие любой новой вкладки может блокировацо настройками браузера(даже при клике руками) - открывайте в том же окне или во фрейме
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2013, 18:59
Новичок на форуме
Отправить личное сообщение для Markus Посмотреть профиль Найти все сообщения от Markus
 
Регистрация: 19.04.2012
Сообщений: 3

Это все не то.
Попробую объяснить что мне надо. Есть страница на которой размещен некий конструктор и есть кнопки "поделиться" социальных сетей фейсбук и контакта. По клику на одну из кнопок необходимо передать все данные конструктора, что исходя из этих данных на стороне сервера была сгенерированна картинка, сохранены данные конструктора и уже в кнопку передать результирующие параметры. Для пользователя все это должно быть прозрачно. Поэтому ни один из предложенных вариантов не подходит.
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2013, 19:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

function winOpen (a,b,c,d){
var newWin = window.open(URL, "blank", 'scrollbars=0, resizable=1, menubar=0, left=' + left + ', top=' + top + ', width=' + width + ', height=' + height + ', toolbar=0, status=0');}
Цитата:
По клику на одну из кнопок необходимо передать все данные конструктора
Вот по клику и запускаете Чтобы тут же закрыть окно - используйте вызов
Цитата:
window.close:newWin.close()
Чтобы показать новое окно посетителю - используйте вызов window.focus:newWin.focus()
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранить результат ajax в переменную Raz0r jQuery 3 14.08.2014 16:27
Не выводится результат MySQL (при использовании AJAX) iBars AJAX и COMET 1 17.12.2012 09:13
как вернуть success (ajax) shaltay jQuery 3 20.01.2012 18:39
Вернуть в строковую переменную текст между тегами h1 andikk Общие вопросы Javascript 11 14.08.2009 17:40
Неверный результат в AJAX с получением HTML Raynor AJAX и COMET 3 17.12.2008 18:38