我的HTML文件中有和之间的所有Google Analytics(分析)代码。这些统计信息已正确处理。

我的onclick事件发生后,将调用下面的函数,我想将事件发送给Google Analytics(分析),但从未收到。我究竟做错了什么?

public static native void googleAnalyticsEvent(String boxId) /*-{
_gaq.push(['_trackEvent', boxId , 'Click']);
}-*/;


仅供参考,如果我将以下代码替换为以下代码,则会正确显示警报:

public static native void googleAnalyticsEvent(String boxId) /*-{
alert(boxId);
}-*/;

最佳答案

尝试:

public static native void googleAnalyticsEvent(String boxId) /*-{
    $wnd._gaq.push(['_trackEvent', boxId , 'Click']);
}-*/;


来自https://developers.google.com/web-toolkit/doc/1.6/DevGuideCodingBasics#DevGuideJavaScriptNativeInterface


  “请注意,代码未引用JavaScript窗口对象
  直接在方法内部。访问浏览器窗口时,
  来自JSNI的文档对象,您必须将它们引用为$ wnd和$ doc,
  分别。您的编译脚本在嵌套框架中运行,并在$ wnd中运行
  和$ doc会自动初始化以正确引用主机
  页面的窗口和文档。”

10-06 08:28