关闭浏览器窗口前调用URL

时间:2009-03-17 12:19:09

标签: javascript jquery

我想在网页的unload-Function中调用一个URL,但在unload-function中,get请求不起作用。我的代码如下所示:

$(window).unload( function () { 
   jQuery.get("someurl")
} );

我们希望了解关闭某些用户操作记录的窗口。有可能吗?

如果我在jQuery.get()之后添加一个alert(),Get-Request有足够的时间来执行此操作,但这不是我们喜欢的。

2 个答案:

答案 0 :(得分:14)

使用: -

jQuery.ajax({url:"someurl", async:false})

答案 1 :(得分:2)

您需要直接使用onbeforeunload事件。在那种情况下,您可以启动ajax调用。这是jQuery实际上没有用处的地方(还)。几个笔记:

不要从onbeforeunload事件返回任何内容,否则浏览器会向用户显示“您确定要离开此页面”弹出窗口

如果你进行ajax调用同步,它会在页面运行时停止卸载。如果您将其设置为异步,则在呼叫运行时页面将会更改(您无法为该呼叫设置javascript事件处理程序)。由于jQuery连接了事件处理程序,因此它的ajax支持在这里并不那么有用。

window.onbeforeunload = function() {
   var URL = 'someplace';
   var request = null;

    if (window.XMLHttpRequest){
        request = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (request) {
        request.open("GET", URL, false);
        request.send();
    }
}