2009-10-27 4 views
0

D'abord, je ne suis pas un développeur javascript donc je n'ai pas beaucoup d'expérience dans ce cas.Erreur d'objet étrange dans Javascript

J'ai un pied de page que j'introduis dans une page HTML en utilisant jQuery qui contient le code suivant pour le client "BESOINS D'ÊTRE".

<script language="JavaScript"><!-- 
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ 
var s_code=s.t();if(s_code)document.write(s_code)//--></script> 
<script language="JavaScript"><!-- 
if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-') 
//--></script> 

Je n'ai vraiment pas à m'inquiéter de quoi que ce soit sauf que ce soit s; ligne de code. J'ai besoin d'écrire un objet fictif ou quoi que ce soit d'autre et de l'inclure dans l'en-tête qui ne fait rien en soi, sauf empêcher une erreur javascript de se produire.

Donc, vraiment, j'ai besoin de "s" l'objet à instancier et avoir une fonction "t" attachée à elle qui ne fait rien fondamentalement.

Toute aide est appréciée. Ce n'est pas quelque chose que je veux faire, mais compte tenu des contraintes de budget et de projet du client, j'ai juste besoin que cela fonctionne sans une erreur javascritp.

merci si vous pouvez aider.

+0

C'est le code d'Omniture. http://www.omniture.com/fr/ – epascarello

+0

Ce morceau de code est le code de base pour Omniture SiteCatalyst. Vous devez inclure le fichier s_code.js. Sinon, le code que vous avez montré est inutile. –

Répondre

0
var s = { 
    t: function(){} 
}; 

Voir dans, hmm, action: http://jsbin.com/oboju

Si vous êtes inquiet s est défini et ne veulent pas passer outre, vous pouvez vérifier d'abord (cela ne couvre pas le cas s.t est défini mais n'est pas une fonction):

if(!s){ // check if s exists 
    var s = []; 
} 
if(!s.t){ // check if s has t 
    s.t = function(){}; 
} 
1

utilisation de javascript prototype:

function s() { 
} 

function doSomething() { 
} 

s.prototype.t = doSomething; 

edit: typo

+0

Ceci n'est pas complet, vous ne pouvez pas écrire 's.t();' -s n'est pas une variable. il devrait être 'var s2 = new s(); s2.t(); ', vous pouvez donc vouloir changer le nom de' s'. – Kobi

+0

Oui, pensait seulement à fournir l'objet qu'il doit utiliser. – putolaruan