如何在ajax调用成功后关闭浏览器中当前打开的选项卡

时间:2016-11-15 08:57:23

标签: javascript jquery ajax

下面是我的ajax调用,一旦ajax调用成功,我想从浏览器关闭当前选项卡。

$.ajax({
    type: "GET",
    data: null,
    url: '@Url.Action("SessionKill", "Authentication")',
    dataType: 'json',
    contentType: false,
    processData: false,
    success: function (response) {
        if (response != null && response.success) {
            window.location = window.close();//from here,I want to close the tab.
        }
    },
    error: function (response) {
    }
});

3 个答案:

答案 0 :(得分:1)

你有一个错字。试试这个:

element.close();

取代:

window.location = window.close();
  

window.close只能关闭使用window.open打开的窗口,因此您无法关闭javascript中的当前选项卡。您可以打开一个新窗口,将其存储在变量中,然后将其关闭。 - Shaun Parsons

打开一个窗口:



var wind;

function openWindow() {
  wind = window.open("https://www.google.com/", "wind", "width=1000,height=700");
}

function closeWindow() {
  wind.close();
}

<input type="button" onclick="openWindow()" value='Open'/>
<input type="button" onclick="closeWindow()" value='Close'/>
&#13;
&#13;
&#13;

<强>更新

此代码段在堆栈溢出时被阻止,因此无法在此处执行。

<强> Why is window.open() blocked?

答案 1 :(得分:0)

这对我有用:

if (response != null && response.success) {
    window.open('', '_self', ''); 
    window.close();
}

答案 2 :(得分:0)

您无法关闭未使用javascript打开的窗口/标签页。

如果你用window.open()创建一个窗口,你可以用window.close()关闭它,否则你不能用js关闭它。