Открыть URL в том же окне и на той же вкладке - PullRequest
299 голосов
/ 10 декабря 2011

Я хочу открыть ссылку в том же окне и на той же вкладке, которая содержит страницу со ссылкой.

Когда я пытаюсь открыть ссылку с помощью window.open, она открывается в новой вкладке, а не в той же вкладке в том же окне.

Ответы [ 14 ]

508 голосов
/ 10 декабря 2011

Вам необходимо использовать атрибут имени:

window.open("https://www.youraddress.com","_self")

Редактировать : URL должен начинаться с протокола.Без этого пытается открыть относительный URL.Протестировано в Chrome 59, Firefox 54 и IE 11.

148 голосов
/ 10 декабря 2011

Используйте это:

location.href = "http://example.com";
38 голосов
/ 16 июля 2015

Чтобы убедиться, что ссылка открыта на той же вкладке, вы должны использовать window.location.replace()

См. Пример ниже:

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

Источник: http://www.w3schools.com/jsref/met_loc_replace.asp

23 голосов
/ 26 января 2018

Вы можете перейти на ту же страницу без указания URL:

window.open('?','_self');
18 голосов
/ 12 декабря 2013

Если ваши страницы находятся внутри «фрейма», то «Window.open ('logout.aspx', '_ self')" "

будет перенаправлен внутри того же фрейма.Таким образом, используя

"Window.open('logout.aspx','_top')"

, мы можем загрузить страницу как новый запрос.

11 голосов
/ 26 апреля 2014

Одной из самых выдающихся функций javascript является запуск обработчиков onclick на лету. Я обнаружил, что следующий механизм более надежен, чем использование location.href='' или location.reload() или window.open:

// this function can fire onclick handler for any DOM-Element
function fireClickEvent(element) {
    var evt = new window.MouseEvent('click', {
        view: window,
        bubbles: true,
        cancelable: true
    });

    element.dispatchEvent(evt);
}

// this function will setup a virtual anchor element
// and fire click handler to open new URL in the same room
// it works better than location.href=something or location.reload()
function openNewURLInTheSameWindow(targetURL) {
    var a = document.createElement('a');
    a.href = targetURL;
    fireClickEvent(a);
}

Выше кода также полезно открыть новую вкладку / окно и обойти все блокировщики всплывающих окон !!! Э.Г.

function openNewTabOrNewWindow(targetURL) {
    var a = document.createElement('a');
    a.href = targetURL;

    a.target = '_blank'; // now it will open new tab/window and bypass any popup blocker!

    fireClickEvent(a);
}
10 голосов
/ 13 сентября 2016

Открыть другой URL-адрес, например, щелкнув ссылку

window.location.href = "http://example.com";
7 голосов
/ 10 декабря 2011

Вы должны использовать window.open?Как насчет использования window.location="http://example.com"?

5 голосов
/ 10 декабря 2011

window.open(url, wndname, params), у него есть три аргумента.если вы не хотите, чтобы он открывался в том же окне, просто установите другое имя wndname.такие как:

window.open(url1, "name1", params); // this open one window or tab
window.open(url1, "name2", params); // though url is same, but it'll open in another window(tab).

Вот подробности о window.open(), вы можете доверять ему!

2 голосов
/ 04 мая 2017

С html 5 вы можете использовать history API .

history.pushState({
  prevUrl: window.location.href

}, 'Next page', 'http://localhost/x/next_page');
history.go();

Затем на следующей странице вы можете получить доступ к объекту состояния, например:

let url = history.state.prevUrl;
if (url) {
  console.log('user come from: '+ url)
}
...