Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Tag Manager自定义JS-出错时返回值_Javascript_Google Tag Manager - Fatal编程技术网

Javascript Google Tag Manager自定义JS-出错时返回值

Javascript Google Tag Manager自定义JS-出错时返回值,javascript,google-tag-manager,Javascript,Google Tag Manager,我正在尝试使用谷歌标签管理器中的自定义js在两种情况下发送文本。它是相同的文本,但取决于页面,有时是超链接的,有时不是 我在Chrome控制台中使用了下面的代码(没有“function()”),但是当添加到Google Tag manager时,它需要一个“return”来显示。我在“try”之前添加了,但这导致了问题 function() { try { google_tag_manager["GTM-KGLGRKD"].dataLayer.get("gtm.element")

我正在尝试使用谷歌标签管理器中的自定义js在两种情况下发送文本。它是相同的文本,但取决于页面,有时是超链接的,有时不是

我在Chrome控制台中使用了下面的代码(没有“function()”),但是当添加到Google Tag manager时,它需要一个“return”来显示。我在“try”之前添加了,但这导致了问题

function() {
try {
        google_tag_manager["GTM-KGLGRKD"].dataLayer.get("gtm.element").parentElement.parentElement.querySelectorAll("td")[1].querySelector("a").innerText;
        } catch (error) {
       google_tag_manager["GTM-KGLGRKD"].dataLayer.get("gtm.element").parentElement.parentElement.querySelectorAll("td")[1].innerText;}
    }

我不确定这是否是获得所需内容的最佳方式,但有没有让上述内容与tag manager兼容的想法?

嗯,请注意,定制JS代码需要为每个GTM事件指定一个值,而不仅仅是单击事件

我建议这样做

function() {
  var returnvalue;
  if ({{Click Element}}) {
    try {
      returnvalue = {{Click Element}}.parentElement.parentElement.querySelectorAll("td")[1].querySelector("a").innerText;
    } catch (error) {
      returnvalue = {{Click Element}}.parentElement.parentElement.querySelectorAll("td")[1].innerText;
    }
  }
  return returnvalue;
}

{{Click Element}}是一个可选的内置变量,在使用它之前需要在GTM中启用它

Hum,注意自定义JS代码需要为每个GTM事件指定一个值,而不仅仅是单击事件

我建议这样做

function() {
  var returnvalue;
  if ({{Click Element}}) {
    try {
      returnvalue = {{Click Element}}.parentElement.parentElement.querySelectorAll("td")[1].querySelector("a").innerText;
    } catch (error) {
      returnvalue = {{Click Element}}.parentElement.parentElement.querySelectorAll("td")[1].innerText;
    }
  }
  return returnvalue;
}

{{Click Element}}是一个可选的内置变量,在使用它之前需要在GTM中启用它

您需要它作为一个要执行的自定义HTML,还是作为一个自定义JavaScript函数(带有返回值)供其他标记、触发器或变量使用?我不确定这些是不同的场景无论有没有链接,都是一样的,因为innerText忽略所有标记,只返回文本。您需要将其作为自定义HTML执行,还是作为自定义JavaScript函数(带有返回值)供其他标记、触发器或变量使用?我不确定这是不同的场景。“td”的innerText由于innerText忽略所有标记并仅返回文本,因此无论是否使用链接,都将相同。