Рубрики
Без рубрики

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

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

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

Тот, который можно считать каноническим для перехода к новому URL-адресу, является

window.location = 'https://newurl.com'

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

window.location.pathname = '/new'

Для этого используется объект местоположение , предлагаемый API Истории .

Другие варианты перенаправления

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

Поскольку window неявно присутствует в браузере, вы также можете сделать:

location = 'https://newurl.com'

Другой способ – установить href свойство местоположение :

window.location.href = 'https://newurl.com'

местоположение также имеет метод assign() , который принимает URL-адрес и выполняет то же самое:

window.location.assign('https://newurl.com')

Метод replace() отличается от предыдущих способов тем, что он перезаписывает текущую страницу в истории. Текущая страница удалена, поэтому, когда вы нажимаете кнопку “назад”, вы возвращаетесь на страницу, которая теперь является последним посещенным.

window.location.replace('https://newurl.com')

Это может быть удобно в некоторых ситуациях.

Различные способы доступа к объекту окна

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

self.location = 'https://newurl.com'

top.location = 'https://newurl.com'

301 перенаправление с использованием директивы на стороне сервера

Во всех приведенных выше примерах рассматривается случай программного решения о переходе на другую страницу.

Если вам нужно перенаправить, потому что текущий URL-адрес устарел, и переместить новый URL-адрес, лучше всего использовать директиву уровня сервера и установить HTTP-код 301, чтобы сигнализировать поисковым системам, что текущий URL-адрес постоянно перемещен на новый ресурс.

Это можно сделать с помощью .htaccess если используется Apache. Netlify делает это через файл _redirects .

Возможны ли 301 перенаправление с использованием JavaScript?

К сожалению, нет.

Это невозможно сделать на стороне клиента.

Код ответа HTTP 301 должен быть отправлен с сервера задолго до того, как браузер запустит JavaScript.

Эксперименты показывают, что перенаправления JavaScript интерпретируются поисковыми системами как 301 перенаправление. См. этот пост поисковой системы для справки.

Google говорит :

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

Используйте мета-тег HTML

Другой вариант – использовать мета-тег в вашем HTML:


  
    
  

Это приведет к тому, что браузер загрузит новую страницу после того, как он загрузил и интерпретировал текущую, и ничего не сообщит поисковым системам. Лучшим вариантом всегда является использование перенаправления на уровне сервера 301.

Оригинал: “https://flaviocopes.com/how-to-redirect-using-javascript/”