【问题标题】:How can I force scripts to finish before leaving the page (in webkit browsers)?如何在离开页面(在 webkit 浏览器中)之前强制脚本完成?
【发布时间】:2011-01-20 11:01:55
【问题描述】:

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

我通过删除链接中的href 属性对此进行了测试。当它被删除时,链接会被跟踪。当链接处于活动状态(并导致离开页面)时,不会跟踪链接。这只适用于 Chrome 和 Safari。

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

这个项目已经加载了jQuery,如果有解决方案就好了。

感谢您的任何建议

【问题讨论】:

  • 如果你删除了href,它是如何被跟踪的?标签上有“onclick”吗?是标签吗?你能发布一个示例代码吗?
  • 正如我在主帖中所说:我有一个带有 onclick 事件函数的链接。该函数只是从 Yahoo! 调用跟踪代码。网络分析和谷歌分析。听起来真的很简单,所以真的不需要示例代码。

标签: javascript jquery google-chrome safari webkit


【解决方案1】:

Google 分析 _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;
    }
});

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    相关资源
    最近更新 更多