Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Вопрос по javascript redirect
Новая тема
Ответить
цитата
24/07/13 в 19:18
dimetrio
Как грамотно прописать яваскрипт редирект, чтобы пользователю передался реф того сайта с которого он редиректится?
цитата
24/07/13 в 22:55
CABMIT
Пропиши невидимую ссылку и сделай на неё программный click
цитата
25/07/13 в 08:49
freeek
насколько я помню javascript и так оставляет реф в браузере, единственная проблема может быть в msie <= 8, для это используют что то вроде этого:
Код:
<?php $location = 'http://www.google.com/';?>
<a style="display:none" id="link" href="<?=$location?>"> </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>
цитата
27/07/13 в 00:00
dimetrio
CABMIT писал:
Пропиши невидимую ссылку и сделай на неё программный click
а можно код?
цитата
27/07/13 в 00:48
CABMIT
Что-то вроде этого
Код:
<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
цитата
02/08/13 в 20:48
Akira07
Цитата:
Что-то вроде этого
А как здесь прописать 10-секундную задержку редиректа?
цитата
02/08/13 в 20:57
^Krot
Ещё проще вариант. Реф передаёт.
Код:
<script>document.location.href = 'http://google.com/';</script>
цитата
02/08/13 в 22:10
Stek
Самый надежный вариант - редитект через сабмит формы. Во всех остальных случаях очень большая вероятность в качестве рефа получить начальную ссылку.
цитата
03/08/13 в 09:19
Yacc
Правильный ответ: не делать редирект на клиенте. Но если это неизбежно, то надо делать так:
Код:
<!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>
цитата
03/08/13 в 11:44
DED
Stek писал:
Самый надежный вариант - редитект через сабмит формы. Во всех остальных случаях очень большая вероятность в качестве рефа получить начальную ссылку.
так и есть. я бы другие варианты даже не расматривал.
цитата
04/08/13 в 15:09
freeek
интересный способ, но все таки единственное, проверку на IE я бы делал как у меня или что то на подобие. иногда браузеры любят приврать и прикинуться IE.
Новая тема
Ответить
Эта страница в полной версии