JavaScript中ajax响应后在新标签页中打开

3

在javascript中,ajax响应后在新标签页中打开无法正常工作,

尝试使用_newtab和_blank

但它们都不起作用,

我想问,

有没有解决方案来得到答案?


1
你有获取你正在工作的代码的任何更改吗? - alexandernst
如果没有更多信息,比如代码片段、你正在使用的浏览器/操作系统以及具体出了什么问题,那么任何人都无法提供帮助... - Nicktar
我正在使用JavaScript中的ajax调用后的window.open方法。 - Mani M
4个回答

5
从JavaScript来看,你不能打开新的选项卡,只能打开新的窗口。如何打开新窗口取决于用户浏览器的设置(可以是在新标签页中打开、在后台中打开新标签页或在新窗口中打开)。
JavaScript 不知道不能知道你的浏览器是否支持选项卡。除非有扩展程序的支持,否则它无法访问浏览器外部的任何内容。
请注意,存在一些没有选项卡的浏览器,还有一些甚至没有窗口。选项卡只是浏览器功能,从未成为任何语言规范的一部分。

所以在JavaScript中的Ajax响应后我无法打开页面?好的,jQuery有解决方案吗? - Mani M
@ManiM,你可以打开一个新窗口或重定向到一个URL。你只是不能特别打开一个标签页,因为JavaScript与标签页无关。 - Joseph

2
请使用以下代码: window.open(您要插入的网址, '_blank');,这将在新标签页中打开链接。

0

以上给出的答案非常有帮助,但在某种程度上,它们并不是完整可行的解决方案。我来到这里是为了寻找同样的解决方案,并且想要添加一个可行的示例。

var win = window.open('_link is here_', 'name');
if (win) {
    //Browser has allowed it to be opened
    win.focus();
} else {
    //Browser has blocked it
    alert('Please allow popups for this website');
}

'name' 是窗口的名称。支持以下名称:
  • _blank - URL将在新标签页中加载。 这是默认设置。
  • _parent - URL将在父框架中加载
  • _self - URL将替换当前页面
  • _top - URL将替换可能已加载的任何框架集

根据浏览器的实现,这将起作用。 您无法做任何事情使其在窗口而不是选项卡中打开。

此外,您可以在此处找到示例。


0

我只使用window.open()方法,它在HTTP响应后调用,所以它会作为弹出窗口打开 :( - Mani M
我认为这可能是你唯一的选择,因为无法以编程方式打开新标签页 :) - Anshuman Jasrotia
还有其他解决方案吗? - Mani M
大多数浏览器在window.open()时打开选项卡而不是新窗口,但这种行为是可配置的。不能保证会打开一个新标签页。 - Anshuman Jasrotia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接