2011-10-07 117 views
4

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

+0

可能重复http://stackoverflow.com/questions/684575/how-要快速清除一个javascript对象) –

+0

以上评论是不正确的。请参阅下面的vectorfrog的答案 –

+0

如果您希望重置s对象,请按照以下答案重新初始化它。 – JohnDoe

回答

12

不要清除整个S对象,它包含了很多的功能正在侦听DOM事件,如果你清楚这些,你会失去很多的功能。我猜你只是想清除你在页面上填充的所有自定义变量(道具,evars,事件,产品等)。 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]]=''; 
    } 
} 

请注意我没有测试的代码。刚刚从臀部开枪。

+0

有几个新变量,例如列表变量和上下文数据变量,这些变量不起作用,但如果您只是使用标准实现,这将非常棒。此外,您可以简单地添加几行代码以适应它们;插件代码相当简单,只是一对'for'循环。 – Gigazelle

+0

请参阅下面的答案。 – JohnDoe

-2

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

退房这个帖子:How to quickly clear a Javascript Object?

s = {}; 
+0

上述代码将杀死Omniture跟踪代码。 –

+0

它清除所有相同的对象... – JohnDoe

+0

羽绒被中和! – JohnDoe

4

对矢量青蛙(惊人)代码的小修正。

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

伟大的脚本V_FRog!

0

这将整个对象重新按你的原始请求:

s=s_gi(s_account); 
的[?如何快速清除Javascript对象(