Показать сообщение отдельно
  #1 (permalink)  
Старый 18.02.2014, 21:24
Новичок на форуме
Отправить личное сообщение для joreg Посмотреть профиль Найти все сообщения от joreg
 
Регистрация: 18.02.2014
Сообщений: 3

Редирект при клике на любую ссылку
Добрый вечер!
Есть задача: при клике на любую ссылку отправлять данные способом JSONP на другой сервер... Решение работает на всех современных браузерах, НО... в браузерах IE<10 не работает редирект/переход по ссылке, а данные отправляются... пример скрипта ниже. Буду благодарен за любые советы и подсказки. Спасибо!
var data = {url:"-1", burl:"-1", text:"-1"}

        function _SendData(data){
			var sc = document.createElement('script');
            var jsonp = 'jsonp=' + encodeURIComponent('{"url":"'+data.url+'","burl":"'+data.burl+'","text":"'+data.text+'"}');
			sc.id = Math.random();
			sc.async = true;
            sc.type = 'text/javascript';
            sc.src = 'http://domain.com/test.php?' + jsonp + '&r=' + Math.random();
			document.getElementsByTagName('body')[0].appendChild(sc);
			sc.onload = function(){
                sc.parentNode.removeChild(sc);
				document.location.href = data.url;
				return true;
            };
		}

        function _Track(e) {
			var targ;
			if (!e) var e = window.event;
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;
			if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
			data.url = targ.href; 
			data.burl = targ.baseURI;
			data.text = targ.text;
			if(targ.tagName == 'A') { _SendData(data); }
			return false;
        };
	
	document.body.onclick = _Track;
Ответить с цитированием