用jQuery替换document.write以获取转换跟踪代码

时间:2014-04-03 15:37:17

标签: javascript jquery

正在使用这些跟踪脚本,但是有些人在一段时间后修改了它们,因为它在某些页面上引起了问题。转换跟踪目前无法正常工作,我不明白如何使用jQuery替换原始的JavaScript,这非常简单。

  • 请注意,我无法验证修复是否有效。他们在别人的服务器和帐户上,我无法从他们那里获得明确的信息。

通用标记(显示在所有网页上)更改:

...从

<script type="text/javascript">
    var ATRK_CLIENT_ID="0000000" ;
    var ATRK_PROTOCOL=(("https:" == document.location.protocol) ? "https://" : "http://"); 
    document.write(unescape("%3Cscript type='text/javascript' src='" + ATRK_PROTOCOL + "js.acq.io/ATRK_" +
    ATRK_CLIENT_ID + "_min.js' %3E%3C/script%3E" )); 
</script>

要...

<script type="text/javascript">
    jQuery(function(){
        var ATRK_CLIENT_ID="0000000" ;
        var ATRK_PROTOCOL=(("https:" == document.location.protocol) ? "https://" : "http://");
        jQuery.getScript(ATRK_PROTOCOL + "js.acq.io/ATRK_" + ATRK_CLIENT_ID + "_min.js");
    });
</script>

转化代码(显示在订单成功页面上):

...从

<script type="text/javascript">
    ...
    ATRKtracker.setTransId('1234567890');
    ...
</script>

要...

<script type="text/javascript">
    jQuery(function(){
        ...
        ATRKtracker.setTransId('1234567890');
        ...
    });
</script>

跟踪软件没有收到任何跟踪信息,我不熟悉jQuery或Javascript。

问题

  1. 在“修复”转换脚本中,是否甚至需要使用jQuery?在我看来,无论通用标签修改如何,您都可以继续使用原始转换代码。

  2. 通用标记实际上只是写<script type="text/javascript" src="http://js.acq.io/ATRK_0000000_min.js"></script><script type="text/javascript" src="https://js.acq.io/ATRK_0000000_min.js"></script>您是否只需硬编码并始终只使用http或https而不管document.location.protocol

  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

回答你的问题:

  1. 正如@ ingo-bürk所说,答案是否定的,但您看到的问题可能是因为实施错误。包含在jQuery()中的函数从未执行过,例如。在()之后放置圆括号。 getScript()更改正常,ATRKtracker.setTransID()调用可以保持原样。
  2. 如果您可以确定您的协议,您可以对其进行硬编码,但是像这样的公司提供的代码段可以用于各种设置。例如,我可能只是将协议全部放在一起。 <script src="//js.acq.io/ATRK_0000000_min.js"></script>获得同样的效果。