Реклама на сайте Advertise with us

Вопрос по javascript redirect

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

just smoke it

С нами с 17.07.07
Сообщения: 1548
Рейтинг: 429

Ссылка на сообщениеДобавлено: 24/07/13 в 19:18       Ответить с цитатойцитата 

Как грамотно прописать яваскрипт редирект, чтобы пользователю передался реф того сайта с которого он редиректится?

супер VPN на 6 устройств

0
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 24/07/13 в 22:55       Ответить с цитатойцитата 

Пропиши невидимую ссылку и сделай на неё программный click

6
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 25/07/13 в 08:49       Ответить с цитатойцитата 

насколько я помню javascript и так оставляет реф в браузере, единственная проблема может быть в msie <= 8, для это используют что то вроде этого:

Код:

<?php $location = 'http://www.google.com/';?>
<a style="display:none" id="link" href="<?=$location?>">&nbsp;</a>
<script type="text/javascript">isNaN(-[1,])?document.getElementById("link").click():top.location="<?=$location?>";</script>
<noscript><meta http-equiv="refresh" content="0;url=<?=$location?>"></noscript>

6
 

just smoke it

С нами с 17.07.07
Сообщения: 1548
Рейтинг: 429

Ссылка на сообщениеДобавлено: 27/07/13 в 00:00       Ответить с цитатойцитата 

CABMIT писал:
Пропиши невидимую ссылку и сделай на неё программный click

а можно код?

супер VPN на 6 устройств

0
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 27/07/13 в 00:48       Ответить с цитатойцитата 

Что-то вроде этого
Код:
<a id="link" style="display:none" href="http://google.com/"></a>
<script>document.getElementById('link').click();</script>

Только тег script должен обязательно идти ниже ссылки (можно перед закрывающим тегом body), чтобы DOM успел прогрузиться. Если используется jQuery, то можно сделать так:
Код:
<script>
$(function(){
  document.getElementById('link').click();
})
</script>
и поместить этот блок в HEAD

5
 



С нами с 10.07.07
Сообщения: 486
Рейтинг: 347

Ссылка на сообщениеДобавлено: 02/08/13 в 20:48       Ответить с цитатойцитата 

Цитата:
Что-то вроде этого

А как здесь прописать 10-секундную задержку редиректа?

4
 



С нами с 06.11.12
Сообщения: 1715
Рейтинг: 1136

Ссылка на сообщениеДобавлено: 02/08/13 в 20:57       Ответить с цитатойцитата 

Ещё проще вариант. Реф передаёт.
Код:
<script>document.location.href = 'http://google.com/';</script>

4
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 02/08/13 в 22:10       Ответить с цитатойцитата 

Самый надежный вариант - редитект через сабмит формы. Во всех остальных случаях очень большая вероятность в качестве рефа получить начальную ссылку.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

4
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 03/08/13 в 09:19       Ответить с цитатойцитата 

Правильный ответ: не делать редирект на клиенте. Но если это неизбежно, то надо делать так:

Код:
<!DOCTYPE html>
<html>
    <head>
        <link rel="canonical" href="http://redirect.to"/>
        <noscript>
            <meta http-equiv="refresh" content="0; url=http://redirect.to">
        </noscript>
    </head>
    <body>
        <script>
            var url = 'http://redirect.to';
            if(navigator.userAgent.match(/MSIE\s(?!9.0)/)) {
                var a = document.createElement('a');
                a.href = url;
                document.body.appendChild(a);
                a.click()
            }
            else
                window.location.replace(url)
        </script>
    </body>
</html>

4
 

Друг зайцев

С нами с 25.01.03
Сообщения: 898
Рейтинг: 115

Ссылка на сообщениеДобавлено: 03/08/13 в 11:44       Ответить с цитатойцитата 

Stek писал:
Самый надежный вариант - редитект через сабмит формы. Во всех остальных случаях очень большая вероятность в качестве рефа получить начальную ссылку.

так и есть. я бы другие варианты даже не расматривал.

4
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 04/08/13 в 15:09       Ответить с цитатойцитата 

интересный способ, но все таки единственное, проверку на IE я бы делал как у меня или что то на подобие. иногда браузеры любят приврать и прикинуться IE.

4
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »