点击input type="image"时的onClick事件

3
我一直在寻找一个明确的答案。基本上,我想为表单提交添加Google Analytics事件跟踪 - 我希望将onClick添加到其中,但我很难找到所有浏览器是否都支持它的信息。
我问了设计该表单的人,她说他们没有使用按钮类型的原因是在某些浏览器中会导致提交表单出现问题,但是她记不清是哪些浏览器。
那么,它能在所有浏览器中工作吗,还是应该切换到按钮?
相关代码如下:
<input name="submit" id="submitme" type="image" 
  src="/graphics/creative/landing_pages/popup/ibd_signmeupbtn.gif" 
  alt="Sign Me Up!" 
  onClick="_gaq.push(['_trackEvent', 'Registrations', 'Register', 'Lightbox']);"
  tabindex="8"  />

编辑 我已经定义了_gaq。这个问题的真正目的是确保使用带有输入图像的onClick是可以的。

2个回答

7
尝试以不同的方式进行连线。
<input name="submit" id="submitme" type="image" 
    src="/graphics/creative/landing_pages/popup/ibd_signmeupbtn.gif" 
    alt="Sign Me Up!" 
    onclick="SignMeUp();"
    tabindex="8"  />

并创建您的函数,如下所示:
<script type="text/javascript">
    function SignMeUp()
    {
        if (!!_gaq) // make sure _gaq is defined
            _gaq.push(['_trackEvent', 'Registrations', 'Register', 'Lightbox']);
    }
</script>

我有同样的问题,但想知道在过去5年中所有网络事物的变化中,这个答案是否仍然是“最好的”。谢谢! - keponk

0

你不需要定义 _gaq 变量,但你需要导入 Google 脚本。

这是我的代码示例:

var _gaq = _gaq || [];
// i'm using asp.net web forms and getting google analytics code from config
_gaq.push(['_setAccount', '<%= ConfigurationManager.AppSettings["google.analytics.code"] %>']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

这不是标记为ASP.Net的内容。 - hunter
是的,这是正确的,但在_gaq.push(['_setAccount', 'value']);中,一个人可以硬编码该值或使用任何其他可用机制来获取该值。如果是php,您会使用<?php blah blah ?>。这是此代码的唯一与asp.net相关的部分,所有内容都是通用的javascript。 - user619891
我想说的是,为了让 _gaq 起作用,必须导入 Google 脚本。 - user619891
是的,那将是一个重要的步骤;)。但是对于没有使用ASP.Net的人来说,那段代码可能会很困惑。最好坚持使用标记代码。 - hunter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接