javascript - 触发 onbeforeunload 事件的所有可能原因是什么?

标签 javascript html google-analytics onbeforeunload

我正在编写一些代码来跟踪我网站上的用户行为,以便通过确定用户与我网站的交互方式来提高转化率。

这需要我在 unbeforeunload 处理程序内向 Google Analytics 发送一些事件,例如“离开网站”。我对这个事件的触发有几个问题。

  1. 如果用户切换标签页而不打开新链接,它会触发吗?
  2. 如果用户点击我网站上带有 target="_blank" 的链接后打开一个新标签页,它会触发吗?
  3. 如果用户访问我自己网站的其他页面,它会触发吗?
  4. 它会在页面重新加载时触发吗?

还有其他情况会触发吗?

谢谢。

最佳答案

onbeforeunload 将在当前选项卡中“卸载”网页(通过导航到新页面)或关闭当前选项卡之前触发。这意味着:

  • 当用户导航到您网站上或网站外的新页面时。
  • 当用户关闭标签页或浏览器时
  • 当用户刷新页面时
  • 当用户提交表单时

回答您的问题

  1. Does it fire if user switches tabs without opening a new link?

没有

  1. Does it fire if a new tab is opened after users clicks a link with target="_blank" on my website?

没有

  1. Does it fire if a users visits some other page of my own website?

是的

  1. Does it fire on page reload?

是的

当前版本的analytics.js应该(使用sendBeacon())将事件作为POST请求分派(dispatch)给GA,即使在关闭选项卡或浏览器时也应该遵守该请求。

但是,我不太确定“离开网站”是否合适。也许更像是“离开页面”。

关于javascript - 触发 onbeforeunload 事件的所有可能原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52046107/

相关文章:

javascript - 在 Angular 中的 CSS 转换后渲染 JS

php - 使用 php 保存 Jquery 可拖动 DIV 的位置

html - Bootstrap 按钮着色问题

google-analytics - 没有数据进入Google Analytics(分析)

javascript - $(this).next ('div' ) 没有抓取 jQuery 中的内容

javascript - Node crypto.randomBytes 从函数返回 token

Javascript promise 不等待解决

javascript - jquery .click 函数到 while 循环

javascript - Eventbrite 嵌入式结帐 - 为什么没有显示 GA 事件和电子商务数据?

javascript - 如何检查是否设置了 Google Analytics 自定义变量( session 范围)