【问题标题】:JSF commandlink and form submit Google Analytics event trackingJSF 命令链接和表单提交 Google Analytics 事件跟踪
【发布时间】:2013-09-17 11:39:24
【问题描述】:

首先,我试图获得一个 h:commandLink 以将自定义 _trackEvent 发送到我们的分析配置文件。

<h:commandLink id="clDisplayDoc" action="#{displayDocManagedBean.displayDocument}" onclick="_gaq.push(['_trackEvent', 'practitionerDocs', 'download']);">

这不起作用,因为我怀疑该事件正在被页面刷新或提交取消。

其次,我想要一个表单提交来发送一个自定义事件。

<h:form id="practitionerForm" onsubmit="_gaq.push(['_trackEvent', 'Submit', 'Provide Feedback']);">

这也不起作用。有没有办法确保两个事件都正确发送?

【问题讨论】:

  • 为了获得更好的答案,最好以纯 HTML 而非原始 JSF 形式呈现代码。 JavaScript 不与 JSF 代码交互,而是与其生成的 HTML 输出交互。至于您的具体问题,_gaq 是异步的,而不是同步的。

标签: javascript forms jsf google-analytics


【解决方案1】:

我不熟悉 jsf,但对于第一个事件,我认为您遇到了竞争条件。尝试设置超时以给事件足够的时间发送 - Disable `<h:commandButton>` after clicked, but action should be fired

【讨论】:

  • &lt;h:commandLink&gt; 只生成一个 HTML &lt;a&gt; 元素,它提交一个父 &lt;form method="post"&gt; 元素。 &lt;h:form&gt; 只生成一个 &lt;form method="post"&gt; 元素。归根结底,JSF 在这个问题的上下文中只是一个 HTML 代码生产者,因此与具体问题无关。只是 OP 似乎并没有完全意识到这一点。
  • 感谢您的解释:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 2013-08-14
  • 2016-09-11
  • 2014-04-25
  • 1970-01-01
相关资源
最近更新 更多