Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2014, 19: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;
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2014, 19:28
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не пробовал onload устанавливать раньше добавления в DOM?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 18.02.2014, 19:33
Новичок на форуме
Отправить личное сообщение для joreg Посмотреть профиль Найти все сообщения от joreg
 
Регистрация: 18.02.2014
Сообщений: 3

Сообщение от danik.js Посмотреть сообщение
Не пробовал onload устанавливать раньше добавления в DOM?
Пробовал, но результат тот же.
Ответить с цитированием
  #4 (permalink)  
Старый 18.02.2014, 19:45
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

http://stackoverflow.com/questions/4...ernet-explorer

В IE8 нет onload, но есть onreadystatechange.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2014, 23:46
Новичок на форуме
Отправить личное сообщение для joreg Посмотреть профиль Найти все сообщения от joreg
 
Регистрация: 18.02.2014
Сообщений: 3

Сообщение от danik.js Посмотреть сообщение
http://stackoverflow.com/questions/4...ernet-explorer

В IE8 нет onload, но есть onreadystatechange.
Спасибо большое! Помогло, работает... правда в опере 10.6... все так же не работает, но на всех IE - тестировал, глюков не нашел...
Единственный вопрос на данный момент: почему при клике на рекламу гугла ничего не отправляется? Есть у Вас идеи?
Еще раз большое спасибо за помощь.
Ответить с цитированием
  #6 (permalink)  
Старый 19.02.2014, 06:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от joreg
почему при клике на рекламу гугла ничего не отправляется
Может реклама в своем фрейме отображается? Тогда конечно, клик выше фрейма не поднимется.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Появление/исчезновение дива при клике на ссылку nickostyle jQuery 5 18.01.2016 02:03
Как получить innerHTML при клике prope Общие вопросы Javascript 3 10.01.2014 15:13
Изменение размера элемента при клике Derekovich Элементы интерфейса 25 05.12.2013 18:45
При клике в любом месте документа должен удаляться определенный id DorianLeroy jQuery 2 24.12.2011 20:05