2

我试图在 ajax 成功的新选项卡中打开一个链接,但该链接在一个新窗口中打开。如何使用 jquery 或 javascript 在选项卡中而不是在新窗口中强制打开链接。

代码:

$("#A1").click(function (event) {
    $.ajax({ 
        type: "POST", 
        url: "Home.aspx/btnTestProject", 
        data: "{'preview':'" + inventory + "' }", 
        contentType: "application/json; charset=utf-8", 
        datatype: "json", 
        cache: false, 
        success: function (response) { 
            window.open("TestnRun.aspx"); //opens in new window 
        }    
    }); 

    window.open("TestnRun.aspx"); //opens in new tab 
});
4

3 回答 3

2

一般来说,你无法控制它。因为这是用户偏好在新窗口或选项卡中打开带有 target="_blank" 的链接。

当浏览器开始完全支持 css-3 时,您将来会有一个选择:

http://www.w3.org/TR/2004/WD-css3-hyperlinks-20040224/#target-new

你可以使用这个:

#anchorId { target-new: tab ! important }
于 2012-04-05T07:49:43.880 回答
2

我看到了同样的事情。

我已经注意到(我使用的是 jquery.1.9.1):

如果您以异步方式调用 $.ajax,或者在新窗口中打开浏览器(Chrome),否则如果您运行 JSON 调用SYNC,则窗口将打开选项卡

这在一个新窗口中打开,弹出:

  $.ajax({ url: "/cliFindExist/", 
    async: true, 
    function(data){... 
    window.open("some.aspx","_blank")});

这个打开的窗口选项卡

$.ajax({ url: "/cliFindExist/", 
async: false, // <<<<<<<<<<<<< NOTE
function(data){... 
window.open("some.aspx","_blank")});

JQuery在调用函数时可能会改变方式/上下文?取决于它是运行同步还是异步调用。

于 2013-06-06T16:52:02.053 回答
1

像这样使用目标“_blank”

<a href="http://www.google.it" target="_blank">My link</a>

或者像这样的Javascript

<button onclick="window.open('http://www.google.it','_blank')">Button</button>
于 2012-04-05T07:47:53.437 回答