【问题标题】:How to insert a dynamically generated value into a tracking script with javascript?如何使用 javascript 将动态生成的值插入到跟踪脚本中?
【发布时间】:2017-05-05 00:46:10
【问题描述】:

我目前正在尝试在改进渠道和点击渠道之间设置准确的收入跟踪,但在让转化代码正常工作时遇到了问题。基本上,最终的订单价格是在 CF 确认页面中生成的,如下所示:

<div class="totalprice">$67.99</div> 

我需要将该值插入到改进的跟踪脚本中。这目前在页眉中,但我认为将它放在页脚可能更好地确保动态价格已经加载,但我不确定。我试图在标准改进脚本开始之前将价格作为可变的,没有 $ 货币符号。但它不起作用。

<script type="text/javascript" src="https://alsearsmd.iljmp.com/improvely.js"></script>
<script type="text/javascript">
var price = document.getElementsByClassName('.totalprice').innerHTML.replace('$', '');  

improvely.init('alsearsmd', 1);
improvely.conversion({
    goal: 'sale',
    revenue: price,
    reference: '123'
});
</script>

【问题讨论】:

    标签: javascript global-variables event-tracking


    【解决方案1】:

    试试这个:

    $(document).ready(function() {
    
        var prices = document.getElementsByClassName('totalprice');
        var price= 0;
        for (var i = 0; i < prices.length; i++) {
          price += parseFloat(prices[i].innerHTML.replace('$', ''));
        }
    
        improvely.init('alsearsmd', 1);
        improvely.conversion({
            goal: 'sale',
            revenue: price,
            reference: ''
        });
    
    }
    

    【讨论】:

    • $(document).ready(function() { 抛出未定义的函数错误,但不管有没有它都不能正常工作。
    • 它是 jQuery,只有在你的 HTML 中添加一个 jQuery
    • 它在你告诉我的 clickfunnels URL 上运行良好
    • 嗯,您可以看到它替换了值吗?尽管有销售,但我没有看到价格上涨 - 所以我认为有些东西不起作用。
    【解决方案2】:

    您的价格分配不起作用。

    使用这个:

    var price = document.getElementsByClassName('totalprice')[0].innerHTML.replace('$', '');
    

    (类名不需要点,我们需要返回数组的第一个元素,[0])

    编辑: 对于多个 div,这是一种方法:

    var price = [].slice.call(document.getElementsByClassName('totalprice')).map((div) => {
      return parseFloat(div.innerHTML.replace("$", ""));
    }).reduce((a, b) => {
      return a + b;
    }, 0);
    

    【讨论】:

    • 谢谢!我注意到当有多个项目时,它实际上使用同一个类,我怎么能把那个类的值加起来呢?我还应该使用数组还是类似的东西:
    • 谢谢!我注意到当有多个项目时,它实际上使用同一个类,我怎么能把那个类的值加起来呢?我还应该使用数组还是类似的东西:'var total = 0; var price = document.getElementsByClassName('totalprice')[0].innerHTML.replace('$', ''); for (var i = 0; i
    • 似乎不起作用,至少在与改进代码相同的
    • 我发布的代码应该替换您的var price = ... 行。
    • 是的,我明白,我确实替换了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多