如何在离开页面之前强制脚本完成(在webkit浏览器中)?

时间:2011-01-20 11:01:56

标签: javascript jquery google-chrome safari webkit

这在FireFox,IE和Opera中已经很好用,但在Chrome和Safari中这是一个问题。我在离开页面的链接上有一个onClick事件函数。这些函数向各种跟踪服务发送请求以记录退出链接。

我已通过删除链接中的href属性对此进行了测试。删除后,将跟踪链接。当链接处于活动状态(并引导离开页面)时,不会跟踪链接。这只是Chrome和Safari中的情况。

我希望有一些非极端方式强制浏览器在离开页面之前完成脚本。 (极端我的意思是f.inst。使用javascript删除href属性并在跟踪完成后手动重定向浏览器)

jQuery已经加载到这个项目中,所以如果它有一个解决方案就会很棒。

感谢您提出的所有建议

1 个答案:

答案 0 :(得分:0)

Google analytics _trackPageView不提供回调,因此您无法轻松获得成功回调,然后进入下一页。虽然在_trackEvent上有一个回调,但每次发生一些GA事件时都会触发。你可以尝试这样并像这样听它(确保你的href回到你的链接 - 这取决于那里,加上你会得到优雅的退化):

$(".myLinkClass").click(function(e){
    e.preventDefault();
    var link = $(this).attr('href');
    pageTracker._trackPageview('/outbound/'+link);
    if (pageTracker._trackEvent("Outbound", "URL", link)) {
       window.location = link;
    }
});