5

您将如何仅通过 Javascript 将 OnSubmit 属性插入表单?

我对javascript很陌生,所以如果您能够提供详细的示例代码,那将是最有帮助的!

情况如下:我通过 Chargify(一个支付平台)使用托管注册页面来处理我的应用程序的信用卡,然后将用户发送回我自己的感谢/确认页面。

由于更改域(我的域 -> Chargify.com -> 我的域),通过谷歌分析跟踪整个渠道非常难以捉摸,因为信用卡页面由 Chargify 在他们自己的域上托管。

我快接近了:我已经能够进行跨域跟踪(chargify.com 页面已登录 Google Analytics),并且可以通过将以下 onclick 属性添加到我的注册链接来从我的域链接到 chargify:

onclick="_gaq.push(['_link', 'http://my-domain.chargify.com/subscriptions/new']); return false;"

但是,我不能在回来的路上做同样的事情(Chargify -> 确认页面),因为我无法访问 Chargify 托管的支付页面代码,并且因为用户是通过表单提交而不是通过表单提交到我的确认页面的正常链接。

部分解决方案(需要您的帮助才能完成): Chargify 允许为其托管页面提供多种选项,其中之一是添加自定义 javascript,这些 javascript 将插入到 </body>标签中的 <script>标签之前。

我在 Google Analytics 文档中找到了一些关于如何链接页面的资源,并将以下内容添加到 Chargify 表单标签可能会起作用:( onsubmit="_gaq.push(['_linkByPost', this]);" 来源:https ://developers.google.com/analytics/devguides/collection/gajs/methods/ gaJSApiDomainDirectory#_gat.GA_Tracker_._linkByPost )

form 标签目前没有 onsubmit 属性,只是这样: <form action="/my_product/subscriptions" class="new_submission" id="hosted_payment_form" method="post">

有没有办法使用 Javascript 简单地将这个属性附加到表单标签? 如果您能够提供我应该在 <script>标签内插入什么代码的详细示例,那将不胜感激。

4

1 回答 1

9
window.onload = function() {
    var form = document.getElementById('hosted_payment_form');
    form.onsubmit = function() {
        _gaq.push(['_linkByPost', this]);
    }
}

我相信上面的例子与你需要的相似。我们使用 document.getElementById 来获取对您的表单的引用。然后将 onsubmit 属性设置为您希望在提交表单之前执行的代码。如果在呈现页面之前执行此 JavaScript,请记住将其放在窗口 onload 事件中,以确保构建表单。

于 2012-12-12T22:42:56.063 回答