Методы window.location.href и window.open() в JavaScript

В чем разница между методами window.location.href и window.open () в JavaScript?


person masif    schedule 16.08.2011    source источник
comment
Связано: Как перенаправить на другую веб-страницу   -  person krubo    schedule 20.10.2019


Ответы (6)


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

window.open() — это метод, с помощью которого вы можете передать URL-адрес, который хотите открыть в новом окне. Например:

Пример окна.location.href:

window.location.href = 'http://www.google.com'; //Will take you to Google.

пример window.open():

window.open('http://www.google.com'); //This will open Google in a new window.

Additional Information:

window.open() можно передавать дополнительные параметры. См.: руководство по window.open

person James Hill    schedule 16.08.2011
comment
В стандарте, вероятно, говорится, что window.location.href является свойством, а не методом, но Internet Explorer (по крайней мере, версия 10) также позволяет вам рассматривать href как метод. Я видел, как это работает, только в IE10, на одной странице, которую я использовал. Вероятно, поэтому спрашивающий вызывал href метод. См. вопрос несовместимость IE с window.location.href. Но да, лучше использовать href как свойство, которое будет работать в любом браузере, включая IE. - person Rory O'Kane; 30.05.2013
comment
@RoryO'Kane, этот вопрос был задан в 2011 году. Я сомневаюсь, что пользователь имел в виду IE 10. - person James Hill; 31.05.2013
comment
Истинный. Но я думаю, что вполне вероятно, хотя и не точно, что старые версии IE обрабатывали window.location.href таким же образом. В конце концов, новые версии iE, как правило, больше основаны на стандартах, а не меньше. Так что если IE10 все еще нарушает стандарт, то, вероятно, и старые версии тоже. - person Rory O'Kane; 31.05.2013
comment
В чем разница между использованием window.open(newUrl, '_self') и location.href = newUrl`? Оба откроют newUrl на одной вкладке. - person Harry; 15.09.2020

  • window.open откроет новый браузер с указанным URL-адресом.

  • window.location.href откроет URL-адрес в окне, в котором вызывается код.

Также обратите внимание, что window.open() — это функция самого объекта окна, тогда как window.location — это объект, который предоставляет множество других методов и свойств.

person Tom    schedule 16.08.2011

Уже есть ответы, описывающие window.location.href и метод window.open().

Я буду использовать Объективное использование:

1. Перенаправить страницу на другую

Используйте window.location.href. Задайте для свойства href значение href другой страницы.

2. Откройте ссылку в новом или отдельном окне.

Используйте окно.открыть(). Передайте параметры в соответствии с вашей целью.

3. Знать текущий адрес страницы

Используйте window.location.href. Получить значение свойства window.location.href. Вы также можете получить конкретный протокол, имя хоста, хэш-строку из объекта window.location.

Дополнительные сведения см. в разделе Объект местоположения.

person Somnath Muluk    schedule 08.09.2016

window.open — это метод; вы можете открыть новое окно и настроить его. window.location.href — это просто свойство текущего окна.

person ngi    schedule 16.08.2011

window.open () откроет новое окно, а window.location.href откроет новый URL-адрес в текущем окне.

person Joseph Silber    schedule 16.08.2011
comment
window.open() также может открывать «url» в том же окне, если «_self» передается в качестве дополнительного параметра. - person user761100; 04.10.2018
comment
да, были такие же сомнения. В чем разница между использованием window.open(newUrl, '_self') и location.href = newUrl`? - person Harry; 15.09.2020

window.open откроет URL-адрес в новой вкладке браузера.

window.location.href откроет URL-адрес в текущей вкладке (вместо этого вы можете использовать location)

Вот пример скрипки (в фрагментах SO window.open не работает)

var url = 'https://example.com';

function go1() { window.open(url) }

function go2() { window.location.href = url }

function go3() { location = url }
<div>Go by:</div>
<button onclick="go1()">window.open</button>
<button onclick="go2()">window.location.href</button>
<button onclick="go3()">location</button>

person Kamil Kiełczewski    schedule 08.04.2019