没有更改网址的Google跟踪代码管理器表单提交

时间:2017-05-16 04:51:01

标签: javascript dom google-tag-manager ajaxform

情景:

基于Ajax的联系我们表单在www.example.com/contact-us

页面上

成功提交表单:页面保持不变,显示谢谢文本。 (在html方面,style = display:none的属性从div中删除,它显示了感谢页面。

<div id="123" style="display:none"> Thank you </div>

方法1 :我尝试过表单提交触发器,但每次用户点击“提交”按钮时都会触发。此外,它会触发无效表单提交尝试的代码

方法2:我在GTM中选择了表单验证。但是,gtm.FormSubmit事件未被触发。所以代码永远不会被触发。

方法3:我创建了一个DOM元素变量,在初始页面加载时,它给出了div id="123" style 属性的值。

我的期望是表单提交,我将获得div id 123的Style属性的更新值。但是,该值永远不会更新。

如果在单击提交按钮后style="display:none"不存在时,如何启用触发器?

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是,在表单提交成功后,您可以手动并显式地将事件推送到GTM dataLayer。您通常会在Ajax回调中执行此操作,如下所示

Sub Macro1()

Sheets("model").Select
Dim i As Double
Dim p As Double


For i = 1 To 10
p = -0.1565 + ((i - 1) * 0.0015)
Sheets("model").Range("J15").Value = p


SolverOk SetCell:="$J$12", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$4:$F$4", _
    Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$J$12", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$4:$F$4", _
    Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve (True)



Sheets("rec").Select
Range("B1:H1").Select
Selection.Copy
Sheets("rec").Range(Cells((i + 4), 2), Cells((i + 4), 8)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("C5").Select

Next i

End Sub

然后,在GTM中,您将创建自定义事件类型的触发器,并输入事件名称(form_submitted)。只要将此事件推送到dataLayer,就会触发标记。