2011-10-07 118 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對象(