Как мне перенаправить на другую веб-страницу?

avatar
venkatachalam
2 февраля 2009 в 12:54
6977791
58
7710

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

Источник

Ответы (58)

avatar
Ryan McGeary
3 февраля 2009 в 04:24
15696

Не просто перенаправить с помощью jQuery

jQuery не требуется, а window.location.replace(...) лучше всего имитирует перенаправление HTTP.

window.location.replace(...) лучше, чем использование window.location.href, потому что replace() не сохраняет исходную страницу в истории сеанса, что означает, что пользователь не застрянет в бесконечном фиаско с кнопкой возврата.

Если вы хотите имитировать щелчок по ссылке, используйте location.href

Если вы хотите имитировать перенаправление HTTP, используйте location.replace

Например:

// similar behavior as an HTTP redirect
window.location.replace("http://coderhelper.com");

// similar behavior as clicking on a link
window.location.href="http://coderhelper.com";
png
5 октября 2020 в 22:51
9

Примечание. Поведение, аналогичное перенаправлению HTTP для replace(), означает, что он не будет создавать запись в истории вашего браузера.

Luke T O'Brien
19 декабря 2020 в 13:24
31

Я создал это 5 лет назад, увидев ваш ответ imgflip.com/i/11ua9c

x-yuri
12 марта 2021 в 12:35
1

Если вы отображаете страницу только для перенаправления, location.replace(), вероятно, будет более подходящим (исключите страницу с перенаправлением из истории). Но почему бы вам в первую очередь не сделать перенаправление на стороне сервера?

Md. Jamal Uddin
18 августа 2021 в 05:39
0

Если у кого-то все еще есть проблема с тем, что все примененные вами отличные ответы, но перенаправление страницы не работает, посетите: coderhelper.com/questions/15759020/… это работает в моем случае.

bart
15 ноября 2021 в 23:48
0

@ x-yuri мой вариант использования заключается в том, что фрагменты URI (после символа #) не сохраняются через перенаправление на стороне сервера, потому что они не отправляются на сервер.

x-yuri
16 ноября 2021 в 00:05
0

@bart Какой-то фреймворк, в котором хеш следует сразу за доменом (https://example.com/#some/path)? Кроме того, в чем разница между открытием другой страницы и перенаправлением? На мой взгляд, перенаправление подразумевает желание показать страницу B вместо страницы A. Если этого чего-то нет на сервере, то почему бы сразу не показать страницу B, почему перенаправление?

bart
17 ноября 2021 в 05:51
0

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

avatar
Mustkeem K
30 марта 2018 в 11:43
42

JavaScript очень обширен. Если вы хотите перейти на другую страницу, у вас есть три варианта.

 window.location.href='otherpage.com';
 window.location.assign('otherpage.com');
 //and...

 window.location.replace('otherpage.com');

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

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

window.location.href; // Returns the href (URL) of the current page
window.location.hostname; // Returns the domain name of the web host
window.location.pathname; // Returns the path and filename of the current page
window.location.protocol; // Returns the web protocol used (http: or https:)
window.location.assign; // Loads a new document
window.location.replace; // RReplace the current location with new one.
avatar
Alessandro Foolish Ciak DAnton
17 февраля 2018 в 20:31
15

Если вы предпочитаете использовать чистый JavaScript, я понял, что использование document.location.href="https://example.com" или window.location.href="https://example.com" вызывает проблемы совместимости в Firefox. Вместо этого попробуйте использовать:

location.href="https://example.com";
location.replace("http://example.com");

В моем случае проблема решена. Удачи!

avatar
wild coder
14 февраля 2018 в 10:35
16

Вы можете написать Url.Action для события нажатия кнопки в разделе скрипта следующим образом.

function onclick() {
    location.href = '@Url.Action("Index", "Home")';
}

avatar
Andrei Todorut
22 декабря 2017 в 21:00
18

Использование location.replace() перенаправит вас, но без сохранения истории предыдущей страницы. Это лучше использовать при отправке формы.

Но если вы хотите сохранить свою историю, вы должны использовать location.href=//path.

Примеры:

// Form with steps
document.getElementById('#next').onclick = function() {
   window.location.href='/step2' // Iteration of steps;
}

// Go to next step
document.getElementById('#back').onclick = function() {
   window.history.back();
}

// Finish
document.getElementById('#finish').onclick = function() {
   window.location.href = '/success';
}

// On success page
window.onload = function() {
    setTimeout(function() {
       window.location.replace('/home'); // I can't go back to success page by pressing the back button
    },3000);
}
avatar
omkaartg
7 декабря 2017 в 22:08
6

По моему опыту, JavaScript намного удобнее перенаправлять.

Это зависит от того, как вы хотите изменить местоположение. Если вы хотите регистрировать свой веб-сайт в истории пользователей, используйте window.location.href='ur website';. В противном случае, чтобы сделать это без входа в историю, используйте window.location.replace("your website");.

avatar
HD..
28 августа 2017 в 06:01
14

Одностраничное приложение в том же маршруте приложения

window.location.pathname = '/stack';

JavaScript:

location.href="http://stack.com";
window.location = "http://stack.com";

jQuery:

$(location).attr('href', "http://www.stack.com");
$(window).attr('location', "http://www.stack.com");

Угловой 4

import { Router } from '@angular/router';
export class NavtabComponent{
    constructor(private router: Router) {
    }
    this.router.navigate(['bookings/taxi']);
}
avatar
RuNpiXelruN
19 июля 2017 в 11:01
10

Если вы хотите перенаправить на маршрут в том же приложении, просто

window.location.pathname = '/examplepath'

было бы подходящим вариантом.

avatar
Mohideen bin Mohammed
27 июня 2017 в 09:36
13
  1. location.assign ():

    Чтобы назначить путь маршрута, передав в него путь .. Назначить предоставит вам историю даже после того, как путь был назначен.

    Метод использования: в него следует передать значение .

    Например: location.assign("http://google.com")

    Enter image description here

  2. location.href

    Можно определить, указать путь к нему ... И он будет перенаправлять на указанный путь после настройки, и он будет хранить историю ...

    Метод использования: ему необходимо присвоить значение .

    Например: location.href="http://google.com"

  3. location.replace ():

    Поможет заменить путь, если вы не хотите хранить историю. Он не будет отображать историю после того, как вы замените его путь.

    Метод использования: в него должно быть передано значение .

    Например: location.replace("http://google.com")

    Enter image description here


assign() и href похожи, и оба могут хранить историю. assign будет работать, передавая значение, а href работает путем присвоения.

Вы можете добиться этого с помощью самого JavaScript без использования jQuery, назначив,

window.location = "http://google.com"
location.href="http://google.com"

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

$(window).attr('location', "http://www.google.com");
$(location).attr('href', "http://www.google.com");

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

Вот объект Location,

Location API from chrome

avatar
Maniruzzaman Akash
26 мая 2017 в 19:23
13

Я просто добавляю другой способ:

Чтобы перенаправить любую конкретную страницу / ссылки вашего сайта на другую страницу, просто добавьте эту строку кода:

<script>
    if(window.location.href == 'old_url')
    {
        window.location.href="new_url";
    }

    // Another URL redirect
    if(window.location.href == 'old_url2')
    {
        window.location.href="new_url2";
    }
</script>

Для примера из реальной жизни:

<script>
    if(window.location.href == 'https://old-site.com')
    {
        window.location.href="https://new-site.com";
    }

    // Another URL redirect
    if(window.location.href == 'https://old-site.com/simple-post.html')
    {
        window.location.href="https://new-site.com/simple-post.html";
    }
</script>

Используя этот простой код, вы можете перенаправить весь сайт или любую отдельную страницу.

avatar
Alireza
26 февраля 2017 в 13:36
211

По сути jQuery - это всего лишь JavaScript фреймворк и для выполнения некоторых вещей, таких как перенаправление , в этом случае вы можете использовать только JavaScript. в этом случае у вас есть 3 варианта использования ванильного JavaScript:

1) Используя местоположение , замените , это заменит текущую историю страницы, это означает, что невозможно использовать кнопку назад для возврата к исходной странице.

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

2) Используя местоположение назначьте , это сохранит историю для вас, а с помощью кнопки возврата вы можете вернуться на исходную страницу:

window.location.assign("http://coderhelper.com");

3) Я рекомендую использовать один из этих предыдущих способов, но это может быть третий вариант с использованием чистого JavaScript:

window.location.href="http://coderhelper.com";

Вы также можете написать функцию в jQuery для ее обработки, но это не рекомендуется, так как это всего лишь однострочная чистая функция JavaScript, также вы можете использовать все вышеперечисленные функции без окна, если вы уже находитесь в области окна, например window.location.replace("http://coderhelper.com"); может быть location.replace("http://coderhelper.com");

Также я показываю их все на изображении ниже:

location.replace location.assign

avatar
Kalpesh Panchal
23 февраля 2017 в 23:01
54

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

Метод 1:

window.location.href="http://google.com";

Метод 2:

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

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

Метод 1: $ (расположение)

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

Метод 2: функция многократного использования

jQuery.fn.redirectTo = function(url){
    window.location.href = url;
}

jQuery(window).redirectTo("http://google.com");
avatar
sneha
9 февраля 2017 в 06:34
14
<script type="text/javascript">
    if(window.location.href === "http://coderhelper.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
avatar
Taufiq Rahman
13 декабря 2016 в 10:43
32

В jQuery используйте $(location).attr('href', url):

$(document).ready(function(){
    var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
    $(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

В raw JavaScript есть несколько способов добиться этого:

window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";

- явно устанавливает свойство href.

window.location = "http://www.GameOfThrones.com";

- делает это неявно, поскольку window.location возвращает объект, который по умолчанию устанавливает его свойство .href.

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

- заменяет местоположение текущего окна новым.

self.location = "http://www.somewebsite.com";

- устанавливает расположение самого текущего окна.

Вот пример перенаправления JavaScript через определенное время (3 секунды):

<script>
    setTimeout(function() {
        window.location.href="https://www.youtube.com/";
    }, 3000);
</script>
avatar
cascading-style
23 ноября 2016 в 16:42
14

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

function redirect(a) {
    location = a
}

И позвоните с помощью: redirect([url]);

Нет необходимости в href после location, как это подразумевается.

avatar
SantoshK
24 октября 2016 в 09:26
12

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

  1. Используя метатег в заголовке - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />. Обратите внимание, что content="0; ... используется через сколько секунд вам нужно перенаправить страницу

  2. Используя JavaScript: window.location.href="http://your-page-url.com";

  3. Используя jQuery: $(location).attr('href', 'http://yourPage.com/');

1j01
9 марта 2017 в 17:30
0

Нет причин использовать для этого jQuery, и window. не требуется.

SantoshK
10 марта 2017 в 11:23
0

Где я использовал window. в примере запроса jquery? ... если вы хотите перенаправить страницу через javascript ... чем вам нужно использовать window.location ..

1j01
16 марта 2017 в 23:34
0

Я имел в виду это как отдельные вещи: вы не должны использовать для этого jQuery, а в примере с JavaScript вы можете упростить window.location.href = до location.href = или даже location =.

SantoshK
21 марта 2017 в 11:01
0

Да location.href = было бы лучшим вариантом для перенаправления страницы - :)

avatar
Abhishek K. Upadhyay
30 сентября 2016 в 12:15
15

Это очень легко реализовать. Вы можете использовать:

window.location.href="http://www.example.com/";

Это запомнит историю предыдущей страницы. Чтобы вернуться назад, нажмите кнопку «Назад» в браузере.

Или:

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

Этот метод не запоминает историю предыдущей страницы. В этом случае кнопка «Назад» становится неактивной.

avatar
madhur
29 августа 2016 в 06:38
14

Вы можете использовать:

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

Метод replace() не сохраняет исходную страницу в истории сеанса, поэтому пользователь не может вернуться с помощью кнопки «Назад» и снова получить перенаправление. ПРИМЕЧАНИЕ. В этом случае кнопка «Назад» в браузере будет неактивна.

Однако, если вы хотите, чтобы эффект был таким же, как при нажатии на ссылку, вы должны пойти по следующему адресу:

window.location.href="http://www.example.com/";

В этом случае кнопка возврата браузера будет активной.

avatar
user1012506
16 июня 2016 в 16:26
10

Я уже использую функцию redirect () JavaScript. Работает.

<script type="text/javascript">
    $(function () {
        //It's similar to HTTP redirect
        window.location.replace("http://www.Technomark.in");

        //It's similar to clicking on a link
        window.location.href="Http://www.Technomark.in";
    })
</script>
Mimouni
17 июня 2016 в 12:47
8

в чем разница между этим ответом и первым?

avatar
1j01
13 апреля 2016 в 16:23
46

ECMAScript 6 + jQuery, 85 байт

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

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

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

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

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

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

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

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

В общем, передергиваю.

avatar
Zigri2612
4 марта 2016 в 07:22
8

Полный способ перенаправления со стороны клиента:

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and jQuery example to redirect a page or URL </title>
    </head>
    <body>
        <div id="redirect">
            <h2>Redirecting to another page</h2>
        </div>

        <script src="scripts/jquery-1.6.2.min.js"></script>
        <script>
            // JavaScript code to redirect a URL
            window.location.replace("http://coderhelper.com");
            // window.location.replace('http://code.shouttoday.com');

            // Another way to redirect page using JavaScript

            // window.location.assign('http://code.shouttoday.com');
            // window.location.href = 'http://code.shouttoday.com';
            // document.location.href = '/relativePath';

            //jQuery code to redirect a page or URL
            $(document).ready(function(){
                //var url = "http://code.shouttoday.com";
                //$(location).attr('href',url);
                // $(window).attr('location',url)
                //$(location).prop('href', url)
            });
        </script>
    </body>
</html>
avatar
Divyesh Kanzariya
3 марта 2016 в 10:50
36

код jQuery для перенаправления страницы или URL

Первый способ

Вот код jQuery для перенаправления страницы. Поскольку я поместил этот код в функцию $ (document) .ready (), он будет выполняться, как только страница будет загружена.

var url = "http://coderhelper.com";
$(location).attr('href',url);

Вы даже можете передать URL-адрес непосредственно в метод attr () вместо использования переменной.

Второй путь

 window.location.href="http://coderhelper.com";

Вы также можете ввести такой код (оба они одинаковы внутри):

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

Если вас интересует разница между window.location и window.location.href, то вы можете увидеть, что последний устанавливает свойство href явно, а первый - неявно. Поскольку window.location возвращает объект, который по умолчанию устанавливает свое свойство .href.

Третий путь

Существует другой способ перенаправления страницы с помощью JavaScript, метод replace() объекта window.location. Вы можете передать новый URL-адрес методу replace(), и он будет имитировать перенаправление HTTP. Кстати, помните, что метод window.location.replace() не помещает исходную страницу в историю сеанса, что может повлиять на поведение кнопки возврата. Иногда это то, что вам нужно, поэтому используйте его осторожно.

// Doesn't put originating page in history
window.location.replace("http://coderhelper.com");

Четвертый путь

как метод attr () (после введения jQuery 1.6)

var url = "http://coderhelper.com";
$(location).prop('href', url);
avatar
Muhammad Waqas
4 декабря 2015 в 16:41
28

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

window.location.href="http://google.com";
window.location.replace("page1.html");

Но вы можете сделать функцию в jQuery для перенаправления страницы:

jQuery.fn.redirect=function(url)
{
    window.location.href=url;
}

И вызовите эту функцию:

jQuery(window).redirect("http://coderhelper.com/")
A1rPun
4 декабря 2015 в 18:55
1

Почему вы передаете window функции jQuery в этой строке: jQuery(window).redirect(...)?

Muhammad Waqas
4 декабря 2015 в 22:20
0

@ A1rPun, что мне нужно для передачи оконного документа?

1j01
9 июля 2016 в 22:10
2

Это не имеет смысла как нечто, что должно быть методом jQuery. Нет разницы между $("div").redirect(url) и $().redirect(url). Вы можете сделать его статическим методом, например $.redirect(url), но в этом нет особой необходимости. jQuery вообще не нужен.

avatar
vipul sorathiya
16 июня 2015 в 12:01
24

Просто в JavaScript вы можете перенаправить на определенную страницу, используя следующее:

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

Или

location.replace("http://www.test.com");

Или

window.location.href="http://www.test.com";

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

$(window).attr("location","http://www.test.com");
avatar
lalithkumar
22 мая 2015 в 05:18
46

Javascript:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

JQuery:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window
avatar
Epiphany
28 февраля 2015 в 15:42
40

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

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);
avatar
SergeDirect
26 декабря 2014 в 19:08
88

Исходный вопрос: «Как перенаправить с помощью jQuery?», Поэтому ответ реализует 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 вы можете подключиться к этому коду, используя всего пару строк.

avatar
devst3r
29 сентября 2014 в 13:43
7

Перенаправление пользователя с использованием jQuery / JavaScript

Используя объект местоположения в jQuery или JavaScript, мы можем перенаправить пользователя на другую веб-страницу.

В jQuery

Код для перенаправления пользователя с одной страницы на другую:

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

В JavaScript

Код для перенаправления пользователя с одной страницы на другую:

var url = 'http://www.example.com';
window.location.href = url;

Или

var url = 'http://www.example.com';
window.location = url;
avatar
stratum
11 сентября 2014 в 15:43
25

Используйте функцию jQuery:

$.extend({
  redirectPost: function(location, args) {
    var form = '';
    $.each(args, function(key, value) {
      form += '<input type="hidden" name="' + key + '" value="' + value + '">';
    });
    $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
  }
});

В вашем коде вы используете это так:

$.redirectPost("addPhotos.php", {pimreference:  $("#pimreference").val(), tag: $("#tag").val()});
avatar
Adarsh Gowda K R
8 сентября 2014 в 04:49
15

Вот код для перенаправления на другую страницу с таймаутом 10 секунд.

<script>
    function Redirect()
    {
        window.location="http://www.adarshkr.com";
    }

    document.write("You will be redirected to a new page in 10 seconds.");
    setTimeout('Redirect()', 10000);
</script>

Вы также можете сделать это, нажав кнопку с помощью location.assign:

<input type="button" value="Load new document" onclick="newPage()">
<script>
    function newPage() {
        window.location.assign("http://www.adarshkr.com")
    }
</script>
Patrick W. McMahon
18 декабря 2014 в 16:54
0

не используйте встроенные события щелчка. Плохая практика и не будет поддерживаться в будущих версиях всех веб-браузеров.

avatar
Azam Alvi
5 сентября 2014 в 16:36
54

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

$(location).attr('href', 'http://yourPage.com/');
avatar
Patrick W. McMahon
27 августа 2014 в 21:50
176

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

Цитата с Jquery.com:

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

Его нашли здесь: https://jquery.com/browser-support/

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

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

Эта страница будет перенаправлена ​​на Google через 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 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>

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

avatar
Ben
7 июля 2014 в 00:54
41

Есть три основных способа сделать это,

window.location.href='blaah.com';
window.location.assign('blaah.com');

и ...

window.location.replace('blaah.com');

Последний вариант лучше всего подходит для традиционного перенаправления, потому что он не сохранит страницу, на которую вы перешли до перенаправления, в вашей истории поиска. Однако, если вы просто хотите открыть вкладку с помощью JavaScript, вы можете использовать любое из вышеперечисленных. 1

РЕДАКТИРОВАТЬ: Префикс window не является обязательным.

avatar
Newse
16 февраля 2014 в 14:42
199

Должна быть возможность установить с помощью window.location.

Пример:

window.location = "https://coderhelper.com/";

Вот прошлое сообщение на эту тему: Как мне перенаправить на другую веб-страницу?

avatar
dnxit
7 февраля 2014 в 20:16
5

Вот как я его использую.

   window.location.replace('yourPage.aspx');   
   // If you're on root and redirection page is also on the root

   window.location.replace(window.location.host + '/subDirectory/yourPage.aspx');

   // If you're in sub directory and redirection page is also in some other sub directory.
dnxit
11 февраля 2014 в 07:05
1

@Phil, вы когда-либо сталкивались с подкаталогами в своем приложении, предположим, если вы находитесь на url.com/admin/login.aspx, вы хотите перейти на url.com/customer/orders.aspx window.location.host предоставит вам url.com, затем вы можете добавить свой подкаталог и страницу

avatar
Sakthi Karthik
6 февраля 2014 в 10:28
96

# Перенаправление 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"; .

avatar
Jaydeep Jadav
29 января 2014 в 10:20
18
<script type="text/javascript">
var url = "https://yourdomain.com";

// IE8 and lower fix
if (navigator.userAgent.match(/MSIE\s(?!9.0)/))
{
    var referLink = document.createElement("a");
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
}

// All other browsers
else { window.location.replace(url); }
</script>
avatar
Govind Singh
28 января 2014 в 04:28
471

Есть много способов сделать это.

// 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')
avatar
Ashish Ratan
27 января 2014 в 10:11
81

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

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

Если у вас нет jQuery, используйте JavaScript:

window.location.replace("http://coderhelper.com");
window.location.href("http://coderhelper.com");
avatar
Nikhil Agrawal
23 декабря 2013 в 13:35
220

JavaScript предоставляет вам множество методов для получения и изменения текущего URL-адреса, отображаемого в адресной строке браузера. Все эти методы используют объект Location, который является свойством объекта Window. Вы можете создать новый объект Location с текущим URL-адресом следующим образом:

var currentLocation = window.location;

Базовая структура URL-адреса

<protocol>//<hostname>:<port>/<pathname><search><hash>

enter image description here

  1. Протокол - указывает имя протокола, которое будет использоваться для доступа к ресурсу в Интернете. (HTTP (без SSL) или HTTPS (с SSL))

  2. имя хоста - имя хоста указывает хост, которому принадлежит ресурс. Например, www.coderhelper.com. Сервер предоставляет услуги, используя имя хоста.

  3. порт - номер порта, используемый для распознавания определенного процесса, которому должно быть перенаправлено Интернет-сообщение или другое сетевое сообщение, когда оно поступает на сервер.

  4. путь - путь дает информацию о конкретном ресурсе на хосте, к которому веб-клиент хочет получить доступ. Например, coderhelper.com/index.html.

  5. .
  6. запрос - строка запроса следует за компонентом пути и предоставляет строку информации, которую ресурс может использовать для некоторых целей (например, в качестве параметров для поиска или данных для обработки).

  7. хэш - часть привязки URL-адреса, включает знак решетки (#).

С помощью этих свойств объекта Location вы можете получить доступ ко всем этим компонентам URL

  1. hash - устанавливает или возвращает часть привязки URL-адреса.
  2. хост -Sets или возвращает имя хоста и порт URL-адреса.
  3. имя хоста - Устанавливает или возвращает имя хоста URL.
  4. href - устанавливает или возвращает весь URL.
  5. путь - задает или возвращает имя пути URL-адреса.
  6. порт - устанавливает или возвращает номер порта, который сервер использует для URL-адреса.
  7. протокол - устанавливает или возвращает протокол URL-адреса.
  8. поиск -Sets или возвращает часть запроса URL-адреса

Теперь, если вы хотите изменить страницу или перенаправить пользователя на другую страницу, вы можете использовать свойство href объекта Location, например,

Вы можете использовать свойство href объекта Location.

window.location.href="http://www.coderhelper.com";

Объект местоположения также имеет эти три метода

  1. assign () - загружает новый документ.
  2. reload () - перезагружает текущий документ.
  3. replace () - заменяет текущий документ новым

Вы можете использовать методы assign () и replace также для перенаправления на другие страницы, такие как эти

location.assign("http://www.coderhelper.com");

location.replace("http://www.coderhelper.com");

Чем отличаются assign () и replace () - Разница между методом replace () и методом assign () () заключается в том, что replace () удаляет URL-адрес текущий документ из истории документа означает, что невозможно использовать кнопку «назад» для возврата к исходному документу. Поэтому используйте метод assign (), если вы хотите загрузить новый документ и хотите предоставить возможность вернуться к исходному документу.

Вы можете изменить свойство href объекта местоположения, используя jQuery , также как это

$(location).attr('href',url);

И, следовательно, вы можете перенаправить пользователя на другой URL.

avatar
Vinay Sharma
10 декабря 2013 в 10:09
20

Вы можете использовать его, как в следующем коде, где getRequestToForwardPage - это отображение запроса (URL). Вы также можете использовать свой URL.

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"GuestHouseProcessor?roomType="+$("#roomType").val(),
        data: $("#popForm").serialize(),
        dataType: "json",
        error: (function() {
            alert("Server Error");
            $.unblockUI();
    }),
    success: function(map) {
        $("#layer1").hide();
        $.unblockUI();
        window.location = "getRequestToForwardPage";
    }
});

Это для того же контекста приложения.

Если вы хотите использовать только код, специфичный для jquery, следующий код может помочь:

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 
avatar
Stefan Gruenwald
29 ноября 2013 в 00:49
44

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

<!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>
avatar
tilak
19 ноября 2013 в 04:01
64

Попробуйте это:

location.assign("http://www.google.com");

Фрагмент кода из примера.

avatar
iConnor
30 августа 2013 в 23:46
80

Итак, вопрос в том, как сделать страницу перенаправления, а не в том, как перенаправить на сайт?

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

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

Допустим, вы просто поместили этот фрагмент в файл redirect/index.html на своем веб-сайте и можете использовать его так.

http://www.mywebsite.com/redirect?url=http://coderhelper.com

И если вы перейдете по этой ссылке, она автоматически перенаправит вас на coderhelper.com .

Ссылка на документацию

Вот как вы создаете простую страницу с перенаправлением с помощью JavaScript

Изменить:

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

Пример:

Процесс: store home => страница перенаправления в google => google

Когда в google: google => кнопка возврата в браузере => сохранить главную

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

if( url ) window.location.replace(url);

с

if( url ) window.location.href = url;
avatar
bren
11 июля 2013 в 17:40
60

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

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

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

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

avatar
user2496033
1 июля 2013 в 04:11
47

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

window.location.href="http://google.com";
window.location.replace("page1.html");
avatar
Bidyut
10 июня 2013 в 16:04
37

Напишите приведенный ниже код после раздела PHP, HTML или jQuery. Если в середине раздела PHP или HTML, используйте тег <script>.

location.href="http://google.com"
avatar
Anup
6 июня 2013 в 12:37
54

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

window.location.href="http://www.google.com";

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

avatar
Patartics Milán
25 апреля 2013 в 10:12
266

Я также считаю, что location.replace(URL) - лучший способ, но если вы хотите уведомить поисковые системы о своем перенаправлении (они не анализируют код JavaScript, чтобы увидеть перенаправление), вы должны добавить метатег rel="canonical" в ваш сайт.

Добавление раздела noscript с метатегом обновления HTML в нем также является хорошим решением. Я предлагаю вам использовать этот инструмент перенаправления JavaScript для создания перенаправлений. Он также поддерживает Internet Explorer для передачи HTTP-реферера.

Пример кода без задержки выглядит так:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->
Jay
6 августа 2021 в 00:27
0

Это больше не так: поисковые системы не анализируют Javascript

avatar
Swaprks
14 ноября 2012 в 02:17
78

В функции щелчка просто добавьте:

window.location.href="The URL where you want to redirect";
$('#id').click(function(){
    window.location.href="http://www.google.com";
});
avatar
Nadeem Yasin
30 октября 2012 в 12:15
237

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

window.location = window.location.host

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

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

avatar
Mark Pieszak - Trilon.io
27 июля 2012 в 14:41
775

Стандартный способ "ванильного" JavaScript для перенаправления страницы

window.location.href = 'newPage.html';

Или проще: (поскольку window является глобальным)

location.href = 'newPage.html';

Если вы здесь, потому что теряете HTTP_REFERER при перенаправлении, продолжайте читать:

(в противном случае проигнорируйте эту последнюю часть)


Следующий раздел предназначен для тех, кто использует HTTP_REFERER в качестве одной из многих мер безопасности (хотя это не самая лучшая защитная мера). Если вы используете Internet Explorer 8 или ниже, эти переменные теряются при использовании любой формы перенаправления страниц JavaScript (location.href и т. Д.).

Ниже мы собираемся реализовать альтернативу для IE8 и ниже , чтобы не потерять HTTP_REFERER. В противном случае вы почти всегда можете просто использовать window.location.href.

Тестирование на HTTP_REFERER (вставка URL, сеанс и т. Д.) может помочь определить, является ли запрос законным. ( Примечание: есть также способы обхода / подмены этих рефереров, как указано в ссылке в комментариях)


Простое решение для кросс-браузерного тестирования (откат к window.location.href для Internet Explorer 9+ и всех других браузеров)

Использование: redirect('anotherpage.aspx');

function redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // Internet Explorer 8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}
avatar
ScoRpion
23 мая 2012 в 13:03
149

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

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

А если вам нужен только jQuery, вы можете сделать это так:

$jq(window).attr("location","http://yourdomain.com");
avatar
xloadx
5 сентября 2011 в 17:25
146

Это работает с jQuery:

$(window).attr("location", "http://google.fr");
avatar
Fred
22 октября 2010 в 23:45
355

Это работает для всех браузеров:

window.location.href = 'your_url';
avatar
Boris Guéry
28 октября 2009 в 16:35
1776

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

$(location).prop('href', 'http://coderhelper.com')
avatar
user188973
13 октября 2009 в 09:36
173
var url = 'asdf.html';
window.location.href = url;
avatar
tvanfosson
2 февраля 2009 в 13:18
314

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

<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
    });
});