Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 17.12.2014, 15:09   #1
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
Репутация: 16

icq: 471881773
skype: bars2009182
Восклицание перехватить редирект в iframe

Здравствуйте.
Возможно как то перехватить редирект в фрейме?

Написал функцию которая создает фрейм, вешает на него калбеки и отправляет запрос.
В ответ сервер может перенаправить на другую страницу, и из этого вытекает вопрос - а можно ли отловить этот редирет? Нужно достать адрес на который оно перенаправляет.

Код:
<script>
	var CallbackRegistry = {}; // реестр
	
	var href = 'http://...';
	
	iframeGet(href, function(data){
		console.log('load');
		console.log(data);
	}, function(){
		console.log('error');
	});
	
	function createIframe(name, src, debug) {
		src = src || 'javascript:false'; // пустой src
		
		var tmpElem = document.createElement('div');
		
		// в старых IE нельзя присвоить name после создания iframe
		// поэтому создаём через innerHTML
		tmpElem.innerHTML = '<iframe name="'+name+'" id="'+name+'" src="'+src+'" style="width:700px;height:600px;border:1px red solid;" />';
		
		var iframe = tmpElem.firstChild;
		
		//if (!debug){
		//	iframe.style.display = 'none';
		//}
		
		document.body.appendChild(iframe);

		return iframe;
	}
	
	function iframeGet(url, onSuccess, onError){
		var iframeOk = false; // флаг успешного ответа сервера
		
		var iframeName = Math.random(); // случайное имя для ифрейма
		var iframe = createIframe(iframeName, url); 
		
		console.log(iframe);
		
		CallbackRegistry[iframeName] = function(data) {
			iframeOk = true;  // сервер ответил успешно
			onSuccess(data);
		}
		
		iframe.onload = function() { 
			//iframe.parentNode.removeChild(iframe); // очистка
			
			delete CallbackRegistry[iframeName];   
			
			if (!iframeOk) onError(); // если сервер не ответил как надо - что-то не так
		}
	}
</script>
dem66 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать редирект сайта случайным образом, Случайный редирект на 1 из 3 сайтов Sanchez007 JavaScript, Ajax 1 24.11.2014 09:26
перехватить событие Windows 7 HotGod Общие вопросы Delphi 1 10.06.2010 15:33
должен подгрузиться скрипт который бы создал и вставил в этот див <iframe></iframe> Beni JavaScript, Ajax 1 05.08.2009 14:30
как перехватить открытие чужого приложенияпытаюсь перехватить открытие любого приложе rpy3uH Win Api 2 02.12.2006 13:12


12:23.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.