2011-09-25 3 views
1

Je suis en train de faire un script de changement de fond pour mon site. Tout fonctionne bien sauf le cookie qui devrait stocker la valeur requise. J'utilise jQuery 1.3. IE 8 dit: 'objet ne supporte pas cette propriété ou méthode sur la ligne 47 char 118567432' !? Toute aide est la bienvenue. Exemple de travail sans cookie:Fond personnalisé jQuery à travers un cookie

function images(which,image) { 
     if (which == 't1')image = images[0]; 
     else if (which == 't2')image = images[1];//and etc... 
    } 
    $('html').css("background-image", image); 

Exemple avec cookie (ne fonctionne pas):

function images(which,image) { 
      if (which == 't1')image = images[0]; 
      {$.cookie("html_img", "" + image + "", { expires: 7 }); 
      imgCookie = $.cookie("html_img");} 
      else if (which == 't2')image = images[1]; 
      {$.cookie("html_img", "" + image + "", { expires: 7 }); 
      imgCookie = $.cookie("html_img");} 
      } 
     $('html').css("background-image", imgCookie); 
+0

s'il vous plaît ajouter quelques informations, avez-vous une erreur? Installez FireBug for FireFox, ce plugin affichera toutes les erreurs. – ChrisH

Répondre

2

J'ai converti votre code à un code JavaScript plus efficace et syntaxiquement valide.

function images(which){ 
    var image = /^t\d+/i.test(which) ? images[which.substr(1)-1] : null; 
    if(image !== null) { 
     $.cookie("html_img", image, {expires:7}) 
    } else { 
     image = $.cookie("html_img"); 
     if(!image) image = images[0]; //If the image doesn't exist, use default=0 
    } 
    $('html').css("background-image", image); 
} 

$(document).ready(function(){ 
    images(); //Load image default from cookie 
} 

//If you want to change the image+cookie: images("t2"); 
+0

Merci, maintenant ça marche. Le nouveau problème est que si je clique sur un lien vers une autre page, il donne l'arrière-plan par défaut et non le choisi. – George

+0

J'ai changé ma réponse, parce que votre logique de fonction semble avoir une origine d'une autre planète. Lisez les commentaires. –

1

Peut-être que votre script "cookie plugin" n'est pas importé correctement? Pouvez-vous donner plus de détails sur l'erreur que vous obtenez. Utilisez Firebug pour Firefox ou les outils de développement Chrome pour obtenir une meilleure trace d'erreur.

Questions connexes