Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2017, 14:58
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

window.open внутри post
Всем доброго времени суток.
Пишу скрипт
$.post("/document/documentBase", {idDoc:idDoc, idCheck:idCheck}, function(data){
			window.open('/document/downloadDocument/'+data, '_blank');
		});


Вопрос, собственно всего один.
Почему window.open, не работает внутри post?

Ну и сразу, как можно открыть новое окно?
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2017, 15:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от Officeoff.ru
Почему window.open, не работает внутри post?
Бивас, тест!

Создал файл tmp.csp
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$.post(
		"tmp1.csp", 
		{test: 'Test'}, 
		function(data){
			alert(data)
      	window.open('tmp2.csp?data='+data);
		}
	);
});
</script>
</head>
<body>
</body>
</html>

Создал файл tmp1.csp
Цитата:
Ok
Создал файл tmp2.csp
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<p>#($g(%request.Data("data",1),"Нет данных..."))#</p>
</body>
</html>

Запустил tmp.csp - таки все работает!
Окно открывается... Параметр читается...
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2017, 16:29
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Так, ну оказывается у меня в других браузерах тоже работает.
Это яндекс браузер не открывает. Хотя похожий код, на другом событии срабатывает
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2017, 17:11
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Кстати, если window.open вынести за пределы post, то работает.

В связи с этим вопрос, может быть можно сделать data видимой вне post и передать в window.open?
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2017, 13:28
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Вопрос, так и остается открытым. Можно как-то решить проблему или как?
Думаю ключевой вопрос, сделать data видимой вне post
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2017, 15:30
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Сообщение от Rise Посмотреть сообщение
Открой Консоль JavaScript (Ctrl + Shift + J) и покажи что там он пишет.
Да, собственно в том и проблема, что ничего.
Я могу внутри написать console.log(data), например, и тогда он выведет в консоли отобразится ответ. Но новое окно так и не появляется.
Если console.log не писать, то консоль будет пустой.
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2017, 18:46
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Сообщение от Rise Посмотреть сообщение
Officeoff.ru, в яндекс браузере тоже работает, появляется значок в правой части адресной строки, просто нет сообщения о блокировке, поэтому его не так заметно, как в других браузерах, а так все браузеры по умолчанию блокируют всплывающие окна для разрешения пользователя.

Пример ksa на php:

tmp.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>tmp</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function () {
	$.post('tmp1.php', { test: 'Test' }, function(data) {
		alert(data);
		window.open('tmp2.php?data=' + data);
	});
});
</script>
</head>
<body>
</body>
</html>

tmp1.php
<?php echo 'Ok';

tmp2.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>tmp2</title>
</head>
<body>
<p><?php var_dump($_GET) ?></p>
</body>
</html>
Да, точно, я просто не увидел сообщение о блокировке. Интересно, как это вообще можно заметить...
Спасибо, большое за помощь.
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2017, 18:47
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Хотя все равно остается вопрос. Почему, когда window.open вне post, то не блокируется?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
window.open внутри функции rainurka Общие вопросы Javascript 2 21.09.2014 00:18
Не выполняется внутри JQuery.post frundik Элементы интерфейса 3 14.08.2012 11:35
Jquery ajax в Operа к ASP.NET скрипту по таймеру, IIS выдает 403.9 Zhirinovsky AJAX и COMET 0 23.02.2012 12:56
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Как получить текст внутри iframe на другом домене? Alexander Majesty Events/DOM/Window 1 23.12.2009 22:10