Як переадресувати на іншу веб-сторінку?


7723

Як я можу перенаправляти користувача з однієї сторінки на іншу за допомогою jQuery або чистого JavaScript?


147
Я продовжую бачити обидва window.location = url; і window.location.href = URL; Чим вони відрізняються? Чи вони? До речі, я не знав про window.location.replace (URL). Приємно.
Девід М. Міллер

100
window.locationте саме window.location.href, що і з точки зору поведінки. window.locationповертає об’єкт. Якщо .hrefне встановлено, window.locationза замовчуванням можна змінити параметр .href. Зробіть висновок: використання будь-якого з них прекрасно.
Раптор

10
var url = "ім'я веб-сайту" $ (location) .attr ('href', url);
Божевільний вчений

31
@MadScientist Це зворотний спосіб зробити це. Об'єкт розташування не є елементом HTML, і використання об'єкта jquery для його встановлення просто здається неправильним. Навіщо використовувати це, коли прямий код JS такий простий?
Хуан Мендес

1
Чому ви хочете переадресувати? Форму для входу не слід подавати? І навіть якщо на цільовій сторінці немає логіки, ви все одно зможете надіслати форму на іншу сторінку.
Дімт

Відповіді:


14805

Не просто перенаправляти за допомогою 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://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

// Another method for doing redirecting with JavaScript is this:
window.location = "https://stackoverflow.com";

78
у випадку кнопки надсилання додати помилку повернення; також всередині вашої функції
Абхі,

134
Питання стосується саме JavaScript, але, можливо, варто відзначити, що метаоновлення може бути використане як відмова назад у випадку, якщо у користувача відключений javascript
Hoppe

22
@ NicolòMartini If (IE) document.write ("");
Джефф Ноель

48
Якщо ви вже використовуєте jQuery, просто використовуйте $(location).attr('href',url);. window.location.hrefЗдається, у деяких браузерах непослідовна поведінка, адже в моїй версії Firefox це не працює. Я чув про те, що налаштування window.locationбезпосередньо не працює у версіях IE.
Ноз

8
"краще" слід видалити. Як сказано пізніше у відповіді, найкраще рішення - ситуаційне. ОП не запитує "як я можу імітувати перенаправлення HTTP за допомогою Javascript ..."
MadMaardigan

1684

ПОПЕРЕДЖЕННЯ: Ця відповідь була лише надана як можливе рішення; це, очевидно, не найкраще рішення, оскільки воно вимагає jQuery. Натомість віддавайте перевагу чистому JavaScript-рішенню.

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

63
Це та буквальна відповідь на запитання. Якщо ви вже використовуєте Jquery і тому його вже завантажили, тоді буде більш ефективно пропускна здатність і звичайно зрозуміліше використовувати ярлик
barrymac

27
Що ще важливіше, чи є спосіб зробити це з абстрагованим jQuery? Це просто обгортка для window.location.href = url; Але якщо jQuery мала якусь функцію, то якщо window.location.href = url; не працював у поточному середовищі (браузер, ОС тощо), ядро ​​jQuery може компенсувати?
Кріс

271
Цим способом примушувати jQuery до рівняння просто смішно і безглуздо, тим більше, що window.locationвін не є елементом і тому не має атрибутів.
Тім Даун

10
Я якось сумніваюся, що це все ще працює з останніми версіями jQuery, де .attr()насправді встановлюються атрибути (тобто .setAttribute())
ThiefMaster

156
@deltaray Це не інший спосіб перенаправлення, як сказано вище, це безглузда обгортка навколо об’єкта розташування, який навіть не є елементом! Це нагадує мені i.stack.imgur.com/ssRUr.gif
JCM

676

Стандартний "ванільний" спосіб переадресації 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; 
    }
}

60
Нота примітки: перевірка щодо перенаправлення як міри безпеки - це неприємне рішення. duckduckgo.com/?q=referrer+spoofing
droope

Якщо у вас є ідентифікатор сеансу HTTP GET у URL-адресі пересилання, його можна використовувати для перевірки відповідності сеансу дійсності.
Ендрю Фокс

@mcpDESIGNS Ви впевнені, що намагалися використовувати location.assign? Я використовую в своєму додатку з IE8, і я не втрачаю HTTP_REFERERзаголовка.
Бузінас

Принаймні, у 2012 році він не працював, можливо, пізніші виправлення IE8 це виправили - це добре чути!
Марк Пешак - Trilon.io

1
Ваша згадка про HTTP_REFERER допомогла мені зрозуміти проблему, яку я маю з window.open, і я знайшов тут рішення: stackoverflow.com/questions/7580613/… . До речі, у мене є проблема в IE11!
Дов Міллер

427

Існує маса способів зробити це.

// 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')

8
window.navigateє лише старим IE (Firefox / Chrome не підтримують це). Якщо ви хочете перерахувати всі варіанти, не забувайте про це document.location.
Роб Ш

document.location = document.referrer; Будь ласка, додайте його також у список. Це не працює, як History.back, швидше робить сторінку оновити знову.
Алі Хумаюн

.attr () не працюватиме на jQuery 3.0.0. використовувати замість .val ().
Rivalus

4
@ LéoLam Ось чому існує пошукова система під назвою Google. :-) Ви можете шукати кожного в Google і знаходити різницю. Ви не хочете вибирати одного випадковим чином.
Я

Ви також можете побачити документи, developer.mozilla.org/en-US/docs/Web/API/Location
Джон Балвін Аріас

330

Це працює для кожного браузера:

window.location.href = 'your_url';

8
Ви також можете зробити це, document.location.replace(redirectURL)якщо ви не хочете, щоб перша сторінка була в історії браузера
jazzcat

298

Це допоможе, якби ви були трохи більш описовими в тому, що намагаєтесь зробити. Якщо ви намагаєтеся генерувати підказка даних, є кілька варіантів, як це зробити. Ви можете генерувати окремі посилання для кожної сторінки, до якої ви хочете отримати доступ безпосередньо.

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

252

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

Додавання розділу носкрипта з метатегом оновлення 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 -->

228

Але якщо хтось хоче перенаправити назад на головну сторінку, він може використати наступний фрагмент.

window.location = window.location.host

Було б корисно, якщо у вас є три різних середовища, як розробка, постановка та виробництво.

Ви можете вивчити це вікно або window.location об'єкт, просто помістивши ці слова в консоль Chrome або консоль Firebug .


window.location.replace (window.location.protocol + "//" + window.location.host)
моала

13
ще простіше: window.location = '/'
Іфтах

213

JavaScript надає вам безліч методів для отримання та зміни поточної URL-адреси, яка відображається в адресному рядку браузера. У всіх цих методах використовується об’єкт Location, який є властивістю об'єкта Window. Ви можете створити новий об’єкт Location, який має поточну URL-адресу, як описано нижче.

var currentLocation = window.location;

Основна структура URL-адреси

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

введіть тут опис зображення

  1. Протокол - визначає назву протоколу, що використовується для доступу до ресурсу в Інтернеті. (HTTP (без SSL) або HTTPS (із SSL))

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

  3. port - номер порту, який використовується для розпізнавання конкретного процесу, до якого слід пересилати Інтернет або інше мережеве повідомлення, коли воно надходить на сервер.

  4. ім'я шляху - шлях дає інформацію про конкретний ресурс у хості, до якого веб-клієнт хоче отримати доступ. Наприклад, stackoverflow.com/index.html.

  5. query - рядок запиту слідує за компонентом шляху і надає рядок інформації, яку ресурс може використовувати для певної мети (наприклад, як параметри для пошуку або як дані, що підлягають обробці).

  6. хеш - частина прив’язки URL, містить знак хешу (#).

За допомогою цих властивостей об’єкта Location ви можете отримати доступ до всіх цих компонентів URL-адреси

  1. хеш -встановлює або повертає прив’язну частину URL-адреси.
  2. хост -встановлює або повертає ім'я хоста та порт URL-адреси.
  3. ім'я хоста -встановлює або повертає ім'я хоста URL-адреси.
  4. href - Встановлює або повертає всю URL-адресу.
  5. pathname - Встановлює або повертає ім'я шляху URL-адреси.
  6. port - Встановлює або повертає номер порту, який сервер використовує для URL-адреси.
  7. протокол -встановлює або повертає протокол URL-адреси.
  8. search - Встановлює або повертає частину запиту URL-адреси

Тепер Якщо ви хочете змінити сторінку або перенаправити користувача на якусь іншу сторінку, ви можете скористатися hrefвластивістю об’єкта Location на зразок цієї

Ви можете використовувати властивість href об’єкта Location.

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

Об'єкт місцеположення також має ці три методи

  1. призначити () - завантажує новий документ.
  2. reload () - перезавантажує поточний документ.
  3. substitute () - Заміняє поточний документ на новий

Ви можете використовувати присвоєння () та заміну методів також для переадресації на інші сторінки, такі як ця

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

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

Те, чим відрізняється присвоєння () та заміна () - Різниця між методом заміни () та методом присвоєння () () полягає в тому, що заміна () видаляє URL-адресу поточного документа з історії документів, значить, його неможливо використовувати кнопка «назад» для повернення до оригінального документа. Тому використовуйте метод призначити (), якщо ви хочете завантажити новий документ, і хочете дати можливість повернутися до початкового документа.

Ви можете змінити властивість href об’єкта місцезнаходження за допомогою jQuery також

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

Отже, ви можете перенаправити користувача на якийсь інший URL.


203

В основному jQuery - це лише рамки JavaScript, і для виконання таких речей, як перенаправлення в цьому випадку, ви можете просто використовувати чистий JavaScript, тому в такому випадку у вас є 3 варіанти використання ванільного JavaScript:

1) Визначення місця розташування з допомогою заміни , це замінить поточну історію сторінки, означає , що це не представляється можливим використовувати задню кнопку , щоб повернутися до вихідної сторінці.

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

2) Використовуючи призначення місця розташування , це збереже історію для вас, і за допомогою кнопки "Назад" ви можете повернутися до початкової сторінки:

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

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

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

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

Також я показую їх усім на зображенні нижче:

location.replace location.assign


1
Я рекомендую використовувати assign()більш href=надто як останній не працює належним чином для мене в деяких випадках.
марш


169

Перш ніж почати, 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 Refresh

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

МЕТА Місцезнаходження

<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=uk&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>

Якщо ви поєднаєте два приклади сторінок разом, у вас з'явиться немовля перенаправлення, що гарантує, що ваш користувач ніколи більше не захоче використовувати ваш сайт.


5
Я звертаюся до його запиту на jQuery, кажучи, що він не потрібен. У JQuery є велика кількість корисних ярликів для JavaScript, але для переадресації немає необхідності в ярликах. JQuery - це лише JavaScript. Нічого більше. Нормальний спосіб викликати переадресацію буде працювати з його функціями за допомогою jQuery.
Патрік В. Макмахон


145

Це можна зробити без jQuery як:

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

І якщо ви хочете лише jQuery, ви можете зробити це так:

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

JQuery - це, мабуть, краща ідея, оскільки він може абстрагувати подалі зміни / застарівання веб-переглядача
Epirocks

@Epirocks Якщо в jQuery був призначений API, призначений для цього, це може бути поважною причиною (але сумнівно, що цей API колись зміниться), але приклад тут просто зловживає функцією jQuery, куди можна обернути об'єкти, які не є DOM, і деякі методи все одно працюватимуть.
1j01

Те, що "деякі методи все ще працюватимуть", - саме те, що я маю на увазі під абстрагуванням. Так, ви можете зробити це без JQuery, але ви можете робити все без JQuery, це крім точки.
Епіроки

144

Це працює з jQuery:

$(window).attr("location", "http://google.fr");

Тільки тому, що це працює, не означає, що ви повинні це робити. Це безглузде опосередкування налаштуванняwindow.location
1j01,

89

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


"Використання jQuery" - це гм, неточне. І приклад використання повної URL-адреси не буде працювати, оскільки це не повна URL-адреса. Протоколу немає, тому він буде інтерпретуватися як відносна URL-адреса.
1j01

80

Потрібно ввести цей рядок у свій код:

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

Якщо у вас немає jQuery, перейдіть за допомогою JavaScript:

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

80

Оригінальне запитання: "Як перенаправити за допомогою 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 ви можете підключитися до цього коду за допомогою лише рядка чи двох.


Заголовок Javascript: Чи можна замість цього робити час у секундах?
PythonMaster202

79

Отже, питання полягає в тому, як зробити сторінку перенаправлення, а не як перенаправити на веб-сайт?

Для цього вам потрібно використовувати лише 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://stackoverflow.com

І якщо ви перейдете до цього посилання, воно автоматично перенаправить вас на stackoverflow.com .

Посилання на документацію

Ось так ви створюєте сторінку просте переспрямування з JavaScript

Редагувати:

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

Приклад:

Процес: зберігати home => сторінку переадресації на google => google

Коли в google: google => кнопка "назад" у браузері => зберігати домашню сторінку

Отже, якщо це відповідає вашим потребам, тоді все повинно бути добре. Якщо ви хочете включити сторінку переспрямування в історію браузера, замініть це

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

з

if( url ) window.location.href = url;

74

У функції клацання просто додайте:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});


57

jQuery не потрібен. Ви можете зробити це:

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

Це так просто!

Найкращий спосіб ініціювати HTTP-запит - це за допомогою document.loacation.href.replace('URL').


52

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

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

І якщо ви хочете переміщатися по сторінках у вашій програмі, то у мене також є код, якщо ви хочете.



45

У JavaScript та jQuery ми можемо використовувати наступний код для перенаправлення однієї сторінки на іншу сторінку:

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

45

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. Гольфінг, очевидно, не те, що слід робити поза кодом гольфу, і, крім того, ця відповідь явно насправді не є гольфом.

В основному, сутуло.


45

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

1
Чи є причина для зберігання URL-адреси в jQuery як змінної, але не з ваніллю?
ESR

43

Використання 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");

41

Ось перенаправлення затримки в часі. Ви можете встановити час затримки на що завгодно:

<!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>

5
краще зробіть це: setTimeout (function () {window.location.href = " google.com "}, затримка);
диккіні

39

Є три основні способи зробити це,

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

і ...

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

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

EDIT: windowПрефікс необов’язковий.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.