我想在相同的窗口和相同的选项卡中打开一个链接,其中包含有链接的页面。

当我试图打开一个链接使用窗口。打开,然后在新选项卡中打开——而不是在同一窗口的同一选项卡中。


当前回答

在html 5中,你可以使用历史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)
}

其他回答

使用_self打开当前标签页中的url

const autoOpenAlink = (url = ' ') => { 窗口。打开(url,“在同一个标签页中打开测试页面”); } <一个 href = " https://cdn.xgqfrms.xyz/index.html " 目标= " _self” onclick = " autoOpenAlink(“https://cdn.xgqfrms.xyz/index.html”)" > 在当前标签页中使用' _self '打开url < / >

在新标签页中使用_blank打开url

const autoOpenAlink = (url = ``) => { window.open(url, "open testing page in a new tab page"); } // ❌ The error is caused by a `StackOverflow` limitation // js:18 Blocked opening 'https://cdn.xgqfrms.xyz/index.html' in a new window because the request was made in a sandboxed frame whose 'allow-popups' permission is not set. <a href="https://cdn.xgqfrms.xyz/index.html" target="_blank" onclick="autoOpenAlink('https://cdn.xgqfrms.xyz/index.html')"> open url in a new tab page using `_blank` </a>

refs

根据MDN的文档,你只需要给新窗口/标签一个名字。

https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Syntax

窗口。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()的详细信息,你可以信任它! https://developer.mozilla.org/en/DOM/window.open

试试吧~~

为了确保链接在同一个选项卡中打开,您应该使用window.location.replace()

请看下面的例子:

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

来源:http://www.w3schools.com/jsref/met_loc_replace.asp

你可以让它跳转到相同的页面而不指定url:

window.open('?','_self');

就像这样 _self window.open (" www.youraddress.com ", " ")