【问题标题】:Validate Omniture document.write()'s are efficient and non-stacking验证 Omniture document.write() 是否高效且不堆叠
【发布时间】:2015-08-04 20:06:16
【问题描述】:

我想确定对于每个新调用,对 document.write()omniture 调用都已从 DOM 中无效/清除。

标准:

  1. 我想看看用 Adob​​e Omniture call(s.t() call) 写入 DOM 的内容,例如

  2. 我想确保在添加每个新调用之前清除/取消 DOM 写入

  3. 如何证明 DOM 值无效/清除。

【问题讨论】:

    标签: report adobe analytics adobe-analytics document.write


    【解决方案1】:

    我假设您正在谈论页面代码的这一部分:

    /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ 
    var s_code=s.t();if(s_code)document.write(s_code)//--></script>
    

    Adobe Analytics (Omniture) 跟踪通过创建图像对象向收集服务器发出请求。当您使用 URL 设置 imageObject.src 属性时,现代浏览器会发出请求。使用document.write() 的原因是为了适应如果不是通过简单地将值设置为imageObject.src 来发出请求。

    基本上,AA 代码检查imageObject.src 是否成功加载了返回的图像。如果是这样,s.t() 返回一个空字符串。如果不是,s.t() 返回一个完整的img 标签,它从document.write() 添加到 DOM。

    这个document.write() 回退是为了适应旧版浏览器。 “旧”是指 IE4 旧。如果您不关心跟踪那么旧的浏览器(提示:没人关心),您可以将所有“触发”代码缩减为单个 s.t() 调用(甚至无需分配给 s_code)。

    所以要回答您的问题,除非您使用的是古老的浏览器,否则实际上没有任何文档写入 DOM。但是如果您在一个古老的浏览器上......不,没有代码可以删除以前附加的东西。这让我...

    ..你真的在问什么? IOW,为什么你试图找出/确保它已被删除?我怀疑您可能真正要问的是想要确保先前设置的 AA 变量不会在后续请求中弹出。这是一个公平的问题,但这与请求本身没有任何关系。但是你需要澄清这一点。

    【讨论】:

      猜你喜欢
      • 2022-12-07
      • 2018-11-21
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      相关资源
      最近更新 更多