javascript - задержкой спереадресация js Как перенаправить на другую веб-страницу?




15 Answers

ПРЕДУПРЕЖДЕНИЕ: этот ответ был просто предоставлен в качестве возможного решения; это, очевидно, не лучшее решение, так как для этого требуется jQuery. Вместо этого предпочитайте чистое решение JavaScript.

$(location).attr('href', 'http://stackoverflow.com')
перенаправление с помощью javascript

Как я могу перенаправить пользователя с одной страницы на другую с помощью jQuery или чистого JavaScript?




Использование:

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'

// window.history
window.history.back()
window.history.go(-1)

// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')


// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';

// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')



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

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

Обратите внимание, что текущая страница в примере обрабатывается по-разному в коде и в CSS.

Если вы хотите, чтобы постраничные данные были изменены с помощью AJAX, здесь будет появляться jQuery. Что бы вы сделали, это добавить обработчик кликов для каждого из якорных тегов, соответствующих другой странице. Этот обработчик будет вызывать некоторый код jQuery, который отправляется и выводит следующую страницу через AJAX и обновляет таблицу новыми данными. В приведенном ниже примере предполагается, что у вас есть веб-служба, которая возвращает новые данные страницы.

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});



Но если кто-то хочет перенаправить на домашнюю страницу, он может использовать следующий фрагмент.

window.location = window.location.host

Было бы полезно, если бы у вас было три разных среды: разработка, постановка и производство.

Вы можете изучить это окно или объект window.location, просто разместив эти слова в консоли Chrome или Firebug 's Console.







Прежде чем начать, jQuery - это библиотека JavaScript, используемая для манипуляций с DOM. Поэтому вы не должны использовать jQuery для перенаправления страницы.

Цитата из Jquery.com:

Хотя jQuery может работать без серьезных проблем в более старых версиях браузера, мы не активно тестируем jQuery в них и обычно не исправляем ошибки, которые могут появиться в них.

Он был найден здесь: https://jquery.com/browser-support/

Таким образом, jQuery не является окончательным решением для обратной совместимости.

Следующее решение с использованием raw JavaScript работает во всех браузерах и является стандартным в течение длительного времени, поэтому вам не нужны библиотеки для поддержки кросс-браузера.

Эта страница будет перенаправлена ​​на google.com после 3000 миллисекунд

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

Возможны следующие варианты:

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

При использовании замены кнопка «Назад» не вернется на страницу переадресации, как если бы она никогда не была в истории. Если вы хотите, чтобы пользователь мог вернуться на страницу перенаправления, используйте window.location.href или window.location.assign . Если вы используете опцию, которая позволяет пользователю вернуться на страницу переадресации, помните, что при вводе страницы перенаправления она перенаправляет вас обратно. Поэтому учитывайте это при выборе опции для перенаправления. В условиях, когда страница только перенаправляется, когда действие выполняется пользователем, тогда наличие страницы в истории кнопок «Назад» будет в порядке. Но если страница автоматически переадресовывается, вы должны использовать замену, чтобы пользователь мог использовать кнопку «Назад», не возвращаясь на страницу, отправленную перенаправлением.

Вы также можете использовать метаданные для запуска перенаправления страницы, как указано ниже.

Обновление META

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

Месторасположение META

<meta http-equiv="location" content="URL=http://evil.com" />

BASE Hijacking

<base href="http://evil.com/" />

На этой странице можно найти еще много способов перенаправления вашего ничего не подозревающего клиента на страницу, которую они могут не пожелать, (ни одна из них не зависит от jQuery):

https://code.google.com/p/html5security/wiki/RedirectionMethods

Я также хотел бы отметить, что люди не любят быть случайным образом перенаправленным. Только перенаправляйте людей, когда это абсолютно необходимо. Если вы начнете перенаправлять людей случайно, они больше никогда не заходят на ваш сайт.

Следующая часть гипотетическая:

Вы также можете получить сообщение как вредоносный сайт. Если это произойдет, тогда, когда люди нажмут на ссылку на ваш сайт, браузер пользователей может предупредить их о том, что ваш сайт злонамерен. Также может случиться, что поисковые системы могут начать снижать рейтинг, если люди сообщают о плохом опыте на вашем сайте.

Ознакомьтесь с рекомендациями Google для веб-мастеров о перенаправлении: https://support.google.com/webmasters/answer/2721217?hl=en&ref_topic=6001971

Вот забавная маленькая страница, которая выбивает вас из страницы.

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

Если вы объедините два примера страниц вместе, у вас будет петля для новорожденных, которая гарантирует, что ваш пользователь никогда не захочет снова использовать ваш сайт.




Вы можете сделать это без jQuery как:

window.location = "http://yourdomain.com";

И если вы хотите только jQuery, тогда вы можете сделать это так:

$jq(window).attr("location","http://yourdomain.com");



# Пересылка HTML-страницы с использованием jQuery / JavaScript

Попробуйте этот примерный код:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

Если вы хотите указать полный URL как window.location = "www.google.co.in"; ,




Вы должны поместить эту строку в свой код:

$(location).attr("href","http://.com");

Если у вас нет jQuery, перейдите на JavaScript с помощью:

window.location.replace("http://.com");
window.location.href("http://.com");



***** ОРИГИНАЛЬНЫЙ ВОПРОС БЫЛ - «КАК ПЕРЕСМОТРЕТЬ ИСПОЛЬЗОВАНИЕ JQUERY», HENCE THE ANSWER IMPLEMENTS JQUERY >> ОСВОБОЖДЕНИЕ ИСПОЛЬЗОВАНИЯ *****

Просто перенаправить на страницу с помощью JavaScript:

  window.location.href = "/contact/";

Или если вам нужна задержка:

setTimeout(function () {
  window.location.href = "/contact/";
}, 2000);   // Time in milliseconds

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

     $('a,img').on('click',function(e){
         e.preventDefault();
         $(this).animate({
             opacity: 0 //Put some CSS animation here
         }, 500);
         setTimeout(function(){
           // OK, finished jQuery staff, let's go redirect
           window.location.href = "/contact/";
         },500);
     });

Представьте, что кто-то написал сценарий / плагин, который содержит 10000 строк кода? Ну, с jQuery вы можете подключиться к этому коду только одной строкой или двумя.




jQuery не требуется. Вы можете сделать это:

window.open("URL","_self","","")

Это так просто!

Лучший способ инициировать HTTP-запрос - document.loacation.href.replace('URL') .




Вы можете перенаправить в jQuery следующим образом:

$(location).attr('href', 'http://yourPage.com/');



ECMAScript 6 + jQuery, 85 байт

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

Пожалуйста, не убивай меня, это шутка. Это шутка. Это шутка.

Это «дало ответ на вопрос» в том смысле, что оно попросило решение «с использованием jQuery», которое в этом случае влечет за собой принудительное его вложение в уравнение.

Феррибигу, видимо, нужна шутка, объясненная (по-прежнему шучу, я уверен, что в форме обзора есть ограниченные возможности), поэтому без дальнейших церемоний:

Другие ответы используют attr() jQuery в объектах location или window без необходимости.

Этот ответ также злоупотребляет им, но более смешно. Вместо того, чтобы использовать его для установки местоположения, это использует attr() для извлечения функции, которая устанавливает местоположение.

Функция называется jQueryCode хотя в ней нет ничего jQuery, и вызов функции somethingCode просто ужасен, особенно когда что-то не является даже языком.

«85 байт» - это ссылка на Code Golf. Игра в гольф, очевидно, не является чем-то, что вы должны делать вне поля для гольфа, и, кроме того, этот ответ явно не в гольф.

В основном, съеживается.




Вот перенаправление с задержкой по времени. Вы можете установить время задержки на все, что вы хотите:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>



Мне просто пришлось обновить эту нелепость еще одним новым методом jQuery:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);





Related