【问题标题】:javascript / omniture - how to clear all properties of an object (s object)javascript / omniture - 如何清除对象(s对象)的所有属性
【发布时间】:2011-10-07 20:50:55
【问题描述】:

我正在使用omniture 并将各种属性跟踪到“s”变量以进行跟踪。我正在关注的示例代码在每个跟踪事件之后调用一个名为 s.clearVars() 的函数。但是我收到一个错误,说 clearVars 不是一个有效的函数。有谁知道我应该调用什么来清除跟踪对象?或者如何清除 javascript 对象的所有属性。

【问题讨论】:

标签: javascript jquery object adobe-analytics


【解决方案1】:

不要清除整个 s 对象,它包含很多监听 dom 事件的函数,如果你清除这些,你会失去很多功能。我猜您只是想清除您在页面上填充的所有自定义变量(道具、evas、事件、产品等)。 s.clearVars 函数是 Omniture 咨询公司编写的“插件”,可为您清除所有这些值。您可以联系您的 Omniture 客户经理并向他索要代码,他可能会给您也可能不会给您,这取决于他是否想向您出售一些咨询时间,或者他是否知道您在说什么,或者您可以这样做自己有几个简单的循环:

function ClearVars(){
  for (var i=0; i < 75; i++) {
    s['prop'+i]='';
    s['eVar'+i]='';
    if(i<=5)
      s['hier'+i]='';
   }
   svarArr = ['pageName','channel','products','events','campaign','purchaseID','state','zip','server','linkName'];
  for (var i=0; i < svarArr.length ; i++) {
     s[svarArr[i]]=''; 
  }
}

请注意我没有测试过代码。只是从臀部射击。

【讨论】:

  • 有几个新变量,例如列表变量和上下文数据变量,这将不起作用,但如果您只是使用标准实现,这将非常有用。此外,您可以简单地添加几行代码来适应它们;插件代码相当简单,只有几个“for”循环。
  • 请看下面我的回答。
【解决方案2】:

对 Vector Frogs(惊人的)代码的小修正。

第二个 for 循环需要 i=0 才能清除 pageName 变量。

很棒的脚本 V_FRog!

【讨论】:

    【解决方案3】:

    这将根据您的原始请求重置整个对象:

    s=s_gi(s_account);
    

    【讨论】:

      【解决方案4】:

      我认为如何清除 JS 对象的属性的最佳答案是一起创建一个新对象。

      查看这篇文章:How to quickly clear a Javascript Object?

      s = {};
      

      【讨论】:

      • 当他们的意思是“清除对象”时,他们并不是指整个“s”对象。它们的意思是清除之前在“s”对象上设置的所有分析变量和事件,同时保留其其他属性。
      猜你喜欢
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      相关资源
      最近更新 更多