2016-10-19 2 views
0

Я использую идти-джин и имеют перенаправлятьКак перенаправлять на другой странице, когда страница загружена полностью

c.Redirect(http.StatusMovedPermanently, myurl1). 

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

c.Redirect(http.StatusMovedPermanently, myurl1) 
    // sleep for 5 seconds 
    c.Redirect(http.StatusMovedPermanently, myurl2)? 

Могу ли я приостановить выполнение обработчика в течение нескольких секунд?

+2

Вы можете» t таким образом выполняются обработчики. Даже если вы переадресовываете свои собственные страницы, посетитель просто увидит пустой экран в течение пяти секунд, прежде чем он будет перенаправлен. Вы можете отображать страницу или перенаправлять, но не обе. –

ответ

1

Просто положить внутрь вашей страницы:

<meta http-equiv="refresh" content="5; url=http://example.com/" /> 

Другое решение с JavaScript:

<script type="text/javascript"> 
     setTimeout("location.href = 'http://example.com/';",5000); 
</script> 

ваш выход из страницы HTML с 3-й участник выхода из системы страницы внутри

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta http-equiv="refresh" content="5; url=https://localhost:8080/login" /> 
    <title>Test Layout</title> 
    <style type="text/css"> 
     body, html 
     { 
      margin: 0; padding: 0; height: 100%; overflow: hidden; 
     } 

     #content 
     { 
      position:absolute; left: 0; right: 0; bottom: 0; top: 0px; 
     } 
    </style> 
</head> 
<body> 
<div id="content"> 
    <iframe width="100%" height="100%" frameborder="0" src="http://example.com/" /> 
</div> 
</body> 
</html> 
+0

Это полезно, но моя ситуация немного отличается. У меня есть кнопка выхода из системы, которая перенаправляет меня на сторонний URL-адрес (не под моим контролем), у которого есть своя страница, которая просто говорит: «Вы успешно вышли из системы». Я хочу, чтобы как только я приземлился на эту страницу, я должен перенаправить на страницу входа моего приложения, которая находится по адресу https: // localhost: 8080/login – aaj

+0

Я боюсь, что то, что вы просите, невозможно. Эта 3-сторонняя страница страницы должна перенаправить вас назад, и если она не находится под вашим контролем, и вы не можете разместить код, упомянутый выше, тогда посетитель застрянет с ними на этом этапе. В качестве обходного решения следует использовать iframe, но это совершенно другая история. –

+0

В HTML есть что-то, называемое iframe. Похоже, что это возможно. Но не знаю, как .. – aaj

1

Если вы хотите перенаправить после загрузки страницы, вы должны сделать это в javascript.

База протокола HTTP - это 1 запрос, 1 ответ: «Получить мне эту страницу» -> «Вот он».

Вы не можете ответить один раз на запрос, а через секунду и сказать: «О, теперь вам нужно отобразить эту другую страницу» (так определяется протокол).

Поэтому, если вы хотите переадресовать на другую страницу после короткого перерыва, вам нужно вставить javascript-вызов в конец вашего файла: после того, как первое перенаправление будет выполнено, JS выполнит сам, и вы можете поставить что-то вроде «Подождите 5 секунд, затем вызовите эту вторую страницу».

Смежные вопросы