在同一窗口和同一选项卡中打开URL

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

当我尝试使用window.open打开一个链接时,它会在新选项卡中打开——而不是在同一窗口的同一选项卡中。

1242263 次浏览

你必须使用window.open吗?使用window.location="http://example.com"怎么样?

用这个:

location.href = "http://example.com";

你需要使用name属性:

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

编辑: Url应该以protocol作为前缀。没有它尝试打开相对url。在Chrome 59, Firefox 54和IE 11中测试。

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

试试吧~~

如果你有你的页面在“框架”那么 “Window.open(“logout.aspx”、“_self”)”< / p >

将被重定向到同一帧内。所以通过使用

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

我们可以加载页面作为新的请求。

最突出的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);
}

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

请看下面的例子:

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

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

这很简单。打开第一个窗口window.open(url, <tabNmae>)

例如:window.open("abc.com",'myTab')

下一个窗口。打开时,使用相同的标签名代替_self_parent等。

像点击链接一样打开另一个url

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

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

就是这样 window.open("www.youraddress.com","_self") < / p >

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

window.open('?','_self');
   Just Try in button.


<button onclick="location.reload();location.href='url_name'"
id="myButton" class="btn request-callback" >Explore More</button>


Using href


<a href="#" class="know_how" onclick="location.reload();location.href='url_name'">Know More</a>

在当前选项卡页中使用_self打开url

const autoOpenAlink = (url = ``) => {
window.open(url, "open testing page in a same tab page");
}
<a
href="https://cdn.xgqfrms.xyz/index.html"
target="_self"
onclick="autoOpenAlink('https://cdn.xgqfrms.xyz/index.html')">
open url in the current tab page using `_self`
</a>

在新标签页中使用_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>

参考文献

根据MDN的文档,你只需要给一个新的window/tab的名字。

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

你可以这样做

window.close();
window.open("index.html");

它在我的网站上很成功。