javascript - array.push() 但数组中没有结果?

标签 javascript arrays

链接 here .

<script>
  dataLayer = [];
</script>

<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX" // disguised GTM snippet
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PB4S9P');</script>
<!-- End Google Tag Manager -->

<script>
  dataLayer.push({
    'event':'nevent',
    'eventCategory': 'form submissions',
    'eventAction': 'saw form',
    'eventLabel': '[GPI - Donation Request Form]'  // e.g. Newsletter signup form - NEW SITE
  });  
</script>

当我访问链接并打开控制台并键入 dataLayer 时,我希望看到该对象。但我不能。

当我在页面上时,如果我剪切 n 粘贴 dataLayer.push({}); 它会起作用 - 我看到它已添加到 dataLayer

那么 dataLayer 数组怎么可能没有填充下面推送的内容呢?

最佳答案

提供的代码与您页面上的代码不匹配。
您的页面(有点)缩小了,即没有换行符。
这与您的行尾式注释 (//) 冲突:

<script>  dataLayer.push({    'event':'nevent',    'eventCategory': 'form submissions',    'eventAction': 'saw form',    'eventLabel': '[GPI - Donation Request Form]'  // e.g. Newsletter signup form - NEW SITE  });  </script>

它削减了 });,导致语法错误。
尽管如此,我确实在控制台中输入 dataLayer 得到了结果:

[
    {
        "gtm.start": 1438884079089,
        "event": "gtm.js"
    },
    {
        "event": "gtm.dom"
    },
    {
        "event": "gtm.load"
    }
]

关于javascript - array.push() 但数组中没有结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862657/

相关文章:

javascript - 重构DOM搜索方法?

javascript - 使用 javascript 添加对运行时生成的输入框的焦点

javascript - 如果屏幕上看不到某个类,请执行某些操作

php - 如何在php中的数组中插入新的键值对?

javascript - 将数据从一个数组复制到另一个数组

javascript - 无法读取 JavaScript 函数的属性

javascript - 大型网站中的 Vuex 商店架构

arrays - 我需要创建一个 UIImages 数组,我在 Swift 中从相机胶卷加载这些图像

c# - c#中的托管指针数组

python - 在 matlab 和 python 中创建迭代数组