Javascript DataLayer取自

时间:2016-11-15 14:08:46

标签: javascript html google-tag-manager

我想将HTML代码中的数据提取到我的dataLayer(Google跟踪代码管理器)中。

html代码是这样的:

<body class="portal sessions" data-place="hun">...</body>

Javascript代码是这样的:

<script type="text/javascript">
  var lang_log = document.getElementsByClassName("portal");
  dataLayer.push({
    "language_login":lang_log
})
</script>

我要尝试的是给lang_log变量“hun”值,我会尝试:

<script type="text/javascript">
  var lang_log = document.getElementsByClassName("portal")['data-place'];
  dataLayer.push({
    "language_login":lang_log
})
</script>

但它不起作用。 有什么想法吗?

任何帮助或建议都会提前,谢谢你。

2 个答案:

答案 0 :(得分:1)

document.getElementsByClassName("portal")返回一个类似数组的元素集合。

您可以使用document.getElementsByClassName("portal")[0]获取此集合的第一个元素。

access the data attribute,请使用document.getElementsByClassName("portal")[0].dataset.place

var AdataLayer = [];
var lang_log = document.getElementsByClassName("portal")[0].dataset.place;
AdataLayer.push({
  "language_login":lang_log
})
console.log(AdataLayer);
console.log(AdataLayer[0].language_login);
<body class="portal sessions" id="portal" data-place="hun">...</body>

答案 1 :(得分:0)

找到解决方案:

JS应该是:

<script type="text/javascript">
  var lang_log = document.getElementsByTagName("body")[0].getAttribute("data-locale");
  dataLayer.push({
    "language_login":lang_log
})
</script>

仍在调查为什么第一个版本不起作用!