Javascript 添加到篮子电子商务功能,无需使用GTM。以下行为是否会如预期的那样?

Javascript 添加到篮子电子商务功能,无需使用GTM。以下行为是否会如预期的那样?,javascript,google-analytics,Javascript,Google Analytics,我的任务是硬编码增强对网站的电子商务跟踪(不使用任何标签管理)。任务很简单,包括“添加到篮子” 我希望用一些变量而不是字符串来定义数据字段 那么,在给定的情况下,下面的脚本会提取我期望的相关数据吗?(选择的SKU、产品名称、价格和数量) //将产品添加到购物车时调用。 函数addToCart(产品){ ga('ec:addProduct',{ “id”:document.getElementsByClassName('sku')。文本 “名称”:document.getElementsByCl

我的任务是硬编码增强对网站的电子商务跟踪(不使用任何标签管理)。任务很简单,包括“添加到篮子”

我希望用一些变量而不是字符串来定义数据字段

那么,在给定的情况下,下面的脚本会提取我期望的相关数据吗?(选择的SKU、产品名称、价格和数量)

//将产品添加到购物车时调用。
函数addToCart(产品){
ga('ec:addProduct',{
“id”:document.getElementsByClassName('sku')。文本
“名称”:document.getElementsByClassName('pdHero-name h4')。文本
“价格”:document.getElementById('salePrice')。文本
“数量”:document.getElementByClassName('oakley-custom-selectInner')。文本
});    
ga('ec:setAction','add')
ga(‘发送’、‘事件’、‘用户体验’、‘单击’、‘添加到购物车’);//使用事件发送数据。

}
当我在页面上运行上面的代码片段时,它们都会返回错误,因此我认为它们当前不起作用

最简单的确认方法是在web浏览器中打开网页,然后尝试在javascript控制台中运行代码段(例如,Chrome for Mac中的cmd+alt+j)

如果可以的话,几乎可以肯定的是,通过
id
name
来获取信息会更好,因为它们不太可能因为琐碎的原因而改变-
class
主要是为了风格,因此当页面风格改变时,它们很可能会改变

类名和名称指html元素的不同部分:

<div class="bold" name="first" id="firstId">here is some value</div>
<div class="bold" name="second" id="secondId">here is a second value</div>
这里有一些值
这是第二个值
  • getElementsByClassName('bold')
    检查
    class=
    ,并将在列表中返回上面两个div
  • getElementsByName('first')
    检查
    name=
    ,只返回第一个(但在列表中,因为理论上可能有多个元素具有该名称)
  • getElementById('secondId')
    检查
    id=
    ,只返回第二个
对于前两个函数,在访问任何其他属性之前,始终需要访问第一个元素,例如
getElementsByName('first')[0]。innerText
,但请注意,如果页面中没有具有该名称的元素,则会引发异常

另一点需要注意的是:代码块中的一堆引号似乎已被智能引号所取代,若在实际代码中使用它们,则智能引号将不起作用(例如,
,而不是
)。如果你正在使用Mac电脑,我会推荐你


深入探讨这个问题可能太过具体,对堆栈溢出没有帮助,但是如果您对某个字段有任何特别的困难,可以将其作为单独的问题发布。

很抱歉格式不好。。。我真的很难让它整齐地显示出来。