Javascript 试图从网站上获取转换值,为什么是';未定义';数据层中返回的值?

Javascript 试图从网站上获取转换值,为什么是';未定义';数据层中返回的值?,javascript,dom,google-tag-manager,Javascript,Dom,Google Tag Manager,我已经使用Google Tag Manager在公司网站上实现了facebook事件跟踪。我们希望在用户在我们的网站上发起签出时以及签出完成后开始记录转换值 当测试从Chrome的inspect console工具中的扩展(GTM变量生成器)检索到的代码时,它会给出正确的输出。这告诉我代码至少部分是正确的,并使我认为它是以错误的顺序执行的,或者正在被重写 当我使用catch(e)在发生错误时返回不同的响应时,这将提供我选择的输出,因此我不认为它被覆盖 考虑到页面加载后代码可以工作,我使用了(wi

我已经使用Google Tag Manager在公司网站上实现了facebook事件跟踪。我们希望在用户在我们的网站上发起签出时以及签出完成后开始记录转换值

当测试从Chrome的inspect console工具中的扩展(GTM变量生成器)检索到的代码时,它会给出正确的输出。这告诉我代码至少部分是正确的,并使我认为它是以错误的顺序执行的,或者正在被重写

当我使用catch(e)在发生错误时返回不同的响应时,这将提供我选择的输出,因此我不认为它被覆盖

考虑到页面加载后代码可以工作,我使用了
(window).load(function)
。请参阅以下代码:

$(window).load(function(){
    try{
    return new document.querySelectorAll(".container-wrap>.container.main-      content>.row>#fws_5dbcb43a4c51c>.col.span_12.dark.left>.vc_col-sm-12.wpb_column.column_container.vc_column_container.col.no-extra-padding.instance-0>.vc_column-inner>.wpb_wrapper>.arv_row>.arv_col.arv_span_9>.arv_rowinfo.clearfix>.arv_desc.arv_row.clearfix>.arv_info.arv_col.arv_span_8.arv_col_last>.arv_extra>#rentalForm>.arv_calcrow.clearfix>.arv_calcrow_p")[3].innerText.match(/^.{1}(.*).{0}/i)[1].trim();}
    catch(e) {
            return "Well at least you tried";
    }
})

代码字符串仍然返回“undefined”。我希望它提供当页面已经加载时该字符串代码所指向的值。

我很难理解这个问题。数据层是GTM中的一个特定概念,您不使用它。如果要在GTM中刮取DOM元素,请使用DOM元素类型变量,在“DOM就绪”之后激发的所有标记中都可以访问这些值。对不起,我非常缺乏经验,这使得很难解释问题。我面临的问题是,我试图选择的元素没有ID,并且该类在页面上出现多次。我无法选择要在数据层中返回其值的特定元素(因为我无法计算)。我尝试获取的值是签出过程中的购物车总值。如果有办法确保为页面上的类选择最后显示的元素,我可能会返回正确的值。我不确定是否有更好的方法来实现这一点。GTM中有一个名为“dataLayer”(对象数组)的变量,但您的代码确实向该dataLayer数组推送了一个值,这让我怀疑您使用的术语不正确。您还可以使用“pageload”触发器,而不是分配自己的事件处理程序。