我想跟踪在一个表格中的2个下拉列表中选择的选项。下面我已经放置了一个控制表单的HTML示例。窗体所在的页面是动态安全页。填写一个表单后,它会更改为另一个表单,而不会更改URL。
我在堆栈溢出上读到,您不能在选项字段上使用onClick。因此,我想知道如何在我的场景中设置事件跟踪。
列表1
<div>
<p>What is your favorite fruit?</p>
<select id="list1">
<option value="a">apple</option>
<option value="b">banana</option>
<option value="c">cherry</option>
</select>
</div>
<a href="#"> <!-- Click here first to see the next dropdown menu, URL won't change -->
列表2
<div>
<p>What is your 2nd favorite fruit?</p>
<select id="list2">
<option value="a">apple</option>
<option value="b">banana</option>
<option value="c">cherry</option>
</select>
</div>
<a href="#"> <!-- This is the second time the same button is clicked. -->
,如果可以的话,我会用onClick添加每个选项标签,但不能。在堆栈溢出中了解到。所以伪装成纽扣是我的全部。我只是不知道如何将动态选择发布到Google.
<a onClick="_gaq.push(['_trackEvent', 'listId', 'optionValue']);"
由于我在一个按钮的动态标记上单击了两次,我如何每次获取值和选择ID?如何根据列表的ID和选项的值向google发布一个变量。
是在动态使用的标记中设置的,这是一种智能的事件跟踪方法。是否有一种更干净的方法在我的网站上设置此表单的事件跟踪?
发布于 2014-01-03 04:00:30
据推测(由于表单在选择后发生了变化),会有一个javascript回调来执行更改。因此,您可以将分析跟踪调用放置到回调中,并在表单更改之前读取选定的值。这需要控制js代码。
如果表单是通过ajax调用更改的,您可能希望查看页面的设置是否允许您连接到ajax成功事件。Jquery有全局ajax事件处理程序,在prototype.js中,同样的东西叫做ajax响应程序,我相信其他框架也有类似的东西。
另一种也可能是最简单的方法是将onclick事件附加到更改表单的链接上,并编写一个函数来选择所选选项的值。
使用jquery,它可以如下所示:
$('#list1').find(":selected").value();
在普通的javascript中,它应该如下所示(未经测试):
var list = document.getElementById("list1");
var selection = list.options[list.selectedIndex].value;
因此,您的完全回调应该类似于:
function getSelection(element) {
var list = document.getElementById(element);
var selection = list.options[list.selectedIndex].value;
_gaq.push(['_trackEvent', element , selection);
}
您需要将其附加到链接的onclick事件,并将组合框的id作为参数传递。
https://stackoverflow.com/questions/20895979
复制相似问题