3

我有一个由其他人创建的页面,其中包含模式窗口,每个模式窗口都有悬停时显示的链接/图像。仅供参考,我对 JavaScript 和 jQuery 的了解非常有限。

我想要实现的是将 Google Analytics 事件标签添加到模式窗口中的链接。它可以与直接添加到锚标记的 onclick(下面的代码)一起使用,或者如果它通过 jQuery/JavaScript 添加到链接中)。该事件需要在 Google Anayltics 中作为点击事件触发。

通常,我只是添加:

onclick="_gaq.push(['_trackEvent','Parameter 1', 'Parameter 2', 'Parameter 3']);"

直接添加到锚标记,但是每当我将代码添加到 HTML 中的锚标记时,jQuery 就会停止工作。模态窗口在此链接上正常工作:http: //cookware.lecreuset.com/cookware/content_cast-iron-guide-sizes_10151_-1_20002

您可以在以下链接上看到我所说的“停止工作”的意思 - 列表标签中的项目不再被填充,这意味着图标不会显示,并且悬停时显示的新内容不能访问:http ://cookware.lecreuset.com/cookware/content_test-form_10151_-1_20002

由于大多数链接都是在 jQuery 中创建的,因此我首先尝试通过 .click、.attr、.on 和 .bind 添加 Google 标记,但没有成功。上面的链接向您展示了我对 .click 函数的尝试(搜索 CIGuide,您会在第二个链接的源代码中找到它),但无论我在页面中添加什么 JavaScript,它都会以相同的方式中断。我原来的问题在这里:无法成功地将 Google Analytics 事件标签添加到由 .attr 创建的链接

在我无法让这两件事中的任何一个工作之后,我决定尝试在我提供的所有内容之外的页面上使用它自己的 JavaScript 标签进行简单的警报,看看我是否可以做到这一点工作。它工作得很好,但模态功能仍然坏了。

我已经能够成功地将 Google 标记添加到顶部导航中的锚点以及页面左侧和右侧的箭头中。但是每当我尝试标记其他任何内容时,它都会中断。

我正在与之合作的代理机构能够在他们的服务器上测试它时毫无问题地将谷歌标签添加到锚点,如果我在我的本地机器上测试它,我能够看到事件触发。我必须假设我的服务器或 OpenCMS 有问题。但是,我在任何浏览器/调试器中都看不到任何错误消息,并且我已经使用 JSLint 验证了我的脚本添加,并且一切都检查出来了。

这让我发疯!谁能帮我弄清楚为什么这不起作用以及如何将事件标签添加到页面?

4

2 回答 2

0

不完全确定您要实现的目标以及是否可行。

$(document).ready(function() {

    $("#modal_sizes_1 a").each(function( index, elem ) {

        $(elem).click(function() {

            _gaq.push(['_trackEvent','Parameter 1', 'Parameter 2', 'Parameter 3']);
        });
    });
});

更新
好的,所以我认为这是关于这一行的:

<a
    href="/cookware/content_cast-iron-guide-about_10151_-1_20002"
    title="About Cast Iron" 
    onclick="_gaq.push(['_trackEvent','CIGuide', 'Click', 'About Cast Iron']);"

>About Cast Iron</a>

我会尝试像这样改变它

<a
    href="/cookware/content_cast-iron-guide-about_10151_-1_20002"
    title="About Cast Iron" 
    onclick="setTimeout(function(){
        _gaq.push(['_trackEvent','CIGuide', 'Click', 'About Cast Iron']);
    },0);"

>About Cast Iron</a>

或者甚至使延迟时间超过010 或 50。

于 2012-12-19T21:26:55.403 回答
0

您可以使用 GA 推送方法的回调并添加超时。在你的情况下尝试这样的事情:

var submitBtn = $('.submit-btn');

submitBtn.on('click', function(e) {
    var that = this;

    if (typeof _gaq != 'undefined') {
        e.preventDefault();

        _gaq.push(['_trackEvent','Parameter 1', 'Parameter 2', 'Parameter 3'], function() {
            setTimeout(function() {
                window.location = $(that).attr('href');
            }, 100);
        });
    }
});
于 2013-07-11T23:15:43.287 回答