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

use*_*055 323 html javascript href hyperlink

我想在同一窗口和包含带链接的页面的同一选项卡中打开一个链接.

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

vdb*_*der 547

您需要使用name属性:

window.open("https://www.youraddress.com","_self")
Run Code Online (Sandbox Code Playgroud)

编辑:网址应该附加协议.没有它试图打开相对网址.在Chrome 59,Firefox 54和IE 11中测试过.

  • @ijs​​e实际上,有一些特殊名称,其中一个是'_self',它指的是代码运行的win/tab.;) (10认同)
  • 在window.open()上的MDN [https://developer.mozilla.org/en-US/docs/Web/API/Window/open]文档中未指定'_self'.更多跨浏览器的解决方案是使用location.replace(). (5认同)
  • 第二个参数只是新窗口的名称,比如标签`a`的属性`target =`.事实上,您可以随意命名您的窗口.您需要的只是将其设置为不同的值,以便它不会在同一窗口或选项卡中打开. (2认同)
  • 上面评论中的 MDN 链接会自动链接到 404。链接为 https://developer.mozilla.org/en-US/docs/Web/API/Window/open (2认同)

Dav*_* L. 155

用这个:

location.href = "http://example.com";
Run Code Online (Sandbox Code Playgroud)

  • 这比window.open更受欢迎(根据http://stackoverflow.com/questions/4813879/window-open-target-self-v-window-location-href) (14认同)

and*_*eda 46

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

请参阅以下示例:

window.location.replace("http://www.w3schools.com");
Run Code Online (Sandbox Code Playgroud)

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

  • 它不会保留浏览历史记录,我们不应该使用它。而是尝试使用window.open(“ http://www.google.com”,“ _top”)参考链接https://www.geeksforgeeks.org/open-a-link-without-clicking-on-it-using- javascript / (2认同)
  • 我将其用作内部页面的内部插件的一部分,它非常完美。浏览器历史记录并不是真正的问题,因为它用于自动化,并且使用它的人没有必要手动访问任何页面。感谢您的片段! (2认同)

小智 24

您可以在不指定网址的情况下将其转到同一页面:

window.open('?','_self');
Run Code Online (Sandbox Code Playgroud)

  • 那不是同一个页面。它将从现有 URL 中删除任何查询字符串。 (4认同)

Mag*_*esh 19

如果你的页面在"frame"中,那么"Window.open('logout.aspx','_ self')"

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

"Window.open('logout.aspx','_top')"
Run Code Online (Sandbox Code Playgroud)

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


Mua*_*han 11

其中一个最突出的JavaScript功能是即时启动onclick处理程序.我发现以下机制比使用location.href=''or 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);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码也有助于打开新的选项卡/窗口并绕过所有弹出窗口阻止程序!例如

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);
}
Run Code Online (Sandbox Code Playgroud)


Dar*_*zer 10

打开另一个URL,如点击链接

window.location.href = "http://example.com";
Run Code Online (Sandbox Code Playgroud)


Jef*_*hao 8

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


ijs*_*jse 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).
Run Code Online (Sandbox Code Playgroud)

这里有详细介绍window.open(),值得信赖!
https://developer.mozilla.org/en/DOM/window.open

试试~~

  • 问题非常清楚,想要在同一个窗口***和***同一个标签***打开! (7认同)

xgq*_*rms 5

使用以下命令在当前标签页中打开 url_self

\n

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

\n

使用在新标签页中打开 url_blank

\n

\r\n
\r\n
const autoOpenAlink = (url = ``) => {\n  window.open(url, "open testing page in a new tab page");\n}\n\n// \xe2\x9d\x8c  The error is caused by a `StackOverflow` limitation\n// 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.
Run Code Online (Sandbox Code Playgroud)\r\n
<a\n href="https://cdn.xgqfrms.xyz/index.html"\n target="_blank"\n onclick="autoOpenAlink(\'https://cdn.xgqfrms.xyz/index.html\')">\n   open url in a new tab page using `_blank`\n</a>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

参考文献

\n
\n

根据 MDN 的文档,您只需给出新的window/的一个名称tab

\n
\n

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

\n

  • 问题不在于**你**需要什么!如果您想回答有关您需要什么的问题,请找到一个询问该问题的问题。 (4认同)