Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Сделать реферер и убрать =


Автор: Валерия 5.12.2008, 01:09
Мне нужно сделать редирект на http://test1.ru?var=5 но что бы передался реферер.
Такой скрипт это делает нормально:

Код

<body onload="document.getElementById('myform').submit();">
<form action="http://test1.ru" method="get" id="myform">
<input type="text" name="var" value="5">
</form>


Но если мне нужно сделать редирект на http://test1.ru?100 то

Код

<body onload="document.getElementById('myform').submit();">
<form action="http://test1.ru" method="get" id="myform">
<input type="hidden" name="100">
</form>


Такой скрипт его делает... Но в конце адреса ставит долбанный знак равно, А ОН МНЕ НЕ НУЖЕН!
Как сделать редирект второго варианта без знака равно в конце?

Добавлено @ 01:14
И еще добавлю, что редирект должен быть осуществлен GET методом)
Т.е например document.location правильно редиректит, но реферера не оставляет)

Автор: bars80080 5.12.2008, 10:42
адское предложение. а куда идёт переменная 100? какой язык их поддерживает?
Цитата(Валерия @  5.12.2008,  00:09 Найти цитируемый пост)
document.location правильно редиректит, но реферера не оставляет

в смыле? на приёме при document.location.href = 'http://test1.ru/?var=5'; var=5 отваливается?

Автор: Валерия 5.12.2008, 14:53
Цитата(bars80080 @  5.12.2008,  10:42 Найти цитируемый пост)
в смыле? на приёме при document.location.href = 'http://test1.ru/?var=5'; var=5 отваливается?

Нет, не теряется ничего. Ссылка не бьется. Но реферер пустой. Точнее не пустой, а его вообще нет в заголовках которые отправляет браузер.

Цитата(bars80080 @  5.12.2008,  10:42 Найти цитируемый пост)
адское предложение. а куда идёт переменная 100? какой язык их поддерживает?

cgi )
Там си скорее всего...
Но и на пхп можно легко сделать что бы поддерживало такое)
Банально смотреть $_SERVER['argv'][0] вот и будет всё что после знака вопроса)

Автор: Itsys 6.12.2008, 09:41
Если тебе надо передать только это, то так:
Код

<body onload="document.getElementById('myform').submit();">
<form action="http://test1.ru?100" method="post" id="myform">
</form>

но проще так:
http://htmlcoder.visions.ru/HTML/?9
от туда:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="JavaScript1.1" type="text/javascript">
<!--
location.replace("http://test1.ru?100"); // текущая страница будет заменена в history на новую — важно в плане юзабилити
//-->
</script>
<noscript>
<meta http-equiv="Refresh" content="0; URL=http://test1.ru?100"> <!-- для тех нескольких процентов «сёрферов», которые отключили JavaScript -->
</noscript>
</head>
<body>
Мы перебрались на <a href="http://test1.ru?100">новое местечко</a>.
</body>
</html>

Автор: Валерия 8.12.2008, 15:15
Цитата(Itsys @  6.12.2008,  09:41 Найти цитируемый пост)
location.replace

работает  только в мозилле
Цитата(Itsys @  6.12.2008,  09:41 Найти цитируемый пост)
<form action="http://test1.ru?100" method="post" id="myform">

метод отправки post не подходит) Нужно именно get, я это говорила
Цитата(Валерия @  5.12.2008,  01:09 Найти цитируемый пост)
И еще добавлю, что редирект должен быть осуществлен GET методом)

Я сделала вот так:
Код

<?
$link = "http://vingrad.ru";
?>
<html>
<body>
<a href="<?=$link?>" id="redirect" style="display: none;"></a>
</body>
</html>
<script>
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('opera') > -1 || ua.indexOf('msie') > -1) {
    document.getElementById('redirect').click();
} else {
    location.replace("<?=$link?>");
}
</script>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)