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

时间:2011-12-10 05:00:16

标签: javascript html hyperlink href

我想在同一窗口和包含带链接的页面的同一标签中打开一个链接。

当我尝试使用window.open打开链接时,它会在新标签页中打开 - 而不是在同一窗口的同一标签页中。

15 个答案:

答案 0 :(得分:495)

您需要使用name属性:

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

修改:应在协议前加上网址。没有它试图打开相对网址。在Chrome 59,Firefox 54和IE 11中进行了测试。

答案 1 :(得分:146)

使用此:

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

答案 2 :(得分:35)

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

请参阅以下示例:

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

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

答案 3 :(得分:21)

您可以将其转到同一页面而不指定网址:

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

答案 4 :(得分:18)

如果您的页面在“框架”内,那么     “Window.open('logout.aspx','_ self')”

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

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

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

答案 5 :(得分:11)

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

以上代码也有助于打开新标签/窗口并绕过所有弹出窗口阻止程序! E.g。

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

答案 6 :(得分:10)

打开另一个网址,例如点击链接

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

答案 7 :(得分:7)

你必须使用window.open吗?如何使用window.location="http://example.com"

答案 8 :(得分:5)

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

试一试~~

答案 9 :(得分:2)

使用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)
}

答案 10 :(得分:1)

这很容易。以window.open(url, <tabNmae>)

打开第一个窗口

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

对于下一个所有window.open,请使用相同的标签名称,而不是_self_parent等。

答案 11 :(得分:1)

正是这样的 window.open("www.youraddress.com","_self")

答案 12 :(得分:1)

   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> 

答案 13 :(得分:0)

你可以做到

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

它在我的网站上成功运行。

答案 14 :(得分:-1)

正如MDN的裁判所说,只需给出新的window / tab的名称即可。

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

    <div style="margin: 5px;">
        <a
            :href="url"
            @click="autoOpenAlink"
            target="_blank"
            >
            {{url}}
        </a>
    </div>
  

vue

    autoOpenAlink(e) {
        e.preventDefault();
        let url = this.url;
        window.open(url, "iframe testing page");
    },