alternative à localStorage pour IE10

alternative à localStorage pour IE10 - HTML/CSS - Programmation

Marsh Posté le 24-09-2013 à 20:34:06    

bonjour ,  
 
j'utilises avec Chrome et Firefox la fonction localStorage.setItem et localStorage.getitem , ceci afin de passer des valeurs entre 2 pages Html index et detail.  
ceci fonctionne parfaitement sauf avec IE10 qui retourne une erreur  
 
var lang = "fr";  
window.localStorage.setItem("lang", lang);
 
avec IE10 (sous seven 64bit) j'ai l'erreur :
SCRIPT5007: Impossible d’obtenir la propriété  « setItem » d’une référence null ou non définie  
 
ma page est appelée avec son adresse E:\temp\skins\monskin\index.html
j'ai vu sur quelques forum ne pas être le seul avec ce problème d'incompatibilité localStorage avce IE(9 ou 10)
 
en alternative j'ai essayé de me retourner vers userData  
 

Code :
  1. <style type="text/css">
  2.       #Mystorage {behavior:url(#default#userData);}
  3. </style>
  4. var MyStoreData = document.getElementById("Mystorage" );
  5.                 var lang = "fr";
  6.  // all the other pages will take this setting  
  7.  if( typeof( window.localStorage) !== "undefined" )
  8.   {
  9.    window.localStorage.setItem("lang", lang);
  10.    console.log("Storing setitem value: " + lang );
  11.   } else { if (MyStoreData.addBehavior)
  12.    {
  13.    console.log("Storing addBehavior value: " + lang );
  14.    MyStoreData.setAttribute("lang", lang);
  15.    }
  16.   }

 
et la aussi j'ai avec IE10 l'erreur :  
SCRIPT5007: Impossible d’obtenir la propriété  « addBehavior » d’une référence null ou non définie  
 
j'ai aussi lu sur des forums que userData n'était plus supporté par IE10
 
 
==> je me trouve donc dans une impasse et je souhaiterais avoir des conseils pour en sortir  
 
merci d'avance


Message édité par jluc2808 le 24-09-2013 à 20:34:59
Reply

Marsh Posté le 24-09-2013 à 20:34:06   

Reply

Marsh Posté le 24-09-2013 à 21:00:45    

Ben ouais, mais en file:/// tu es limité et sous IE10 tu n'as pas le droit d'utiliser localStorage
Je t'invite à faire ton skin/site en utilise le protocole http et donc installe toi un uwamp ou autre et rulez :o

Message cité 1 fois
Message édité par gatsu35 le 25-09-2013 à 01:54:36

---------------
Blablaté par Harko
Reply

Marsh Posté le 24-09-2013 à 21:20:42    

Passe ta valeur dans l'adresse puis récupère-la?
 
Par contre ça va être lourd car tu vas devoir changer tous tes liens mais ça se fait.
Tu peux aussi utiliser la mauvaise idée des frames.

Reply

Marsh Posté le 24-09-2013 à 23:30:30    

simplement un cookie sinon...


---------------
Mon feed-back - tt.mereville.free.fr
Reply

Marsh Posté le 25-09-2013 à 01:54:17    

mais les mecs, au lieu de proposer des solutions moisies, lisez ce que j'ai posté


---------------
Blablaté par Harko
Reply

Marsh Posté le 25-09-2013 à 02:20:22    

gatsu35 a écrit :

Ben ouais, mais en file:/// tu es limité et sous IE10 tu n'as pas le droit d'utiliser localStorage
Je t'invite à faire ton skin/site en utilise le protocole http et donc installe toi un uwamp ou autre et rulez :o


merci effectivement ça permet d'utiliser le code localStorage, je cherchait s 'il pouvait y avoir une autre solution qui n'oblige pas à passer par un server, mais comme j'en ai déjà un (apache) qui tourne pour aller chercher des données dans Mysql et une API , je vais voir si c'est pas en définitive le plus simple   :ange:  
 
@maybeeijornot, le passage de la valeur dans l'adresse m'oblige ensuite à mettre du php pour récupérer la valeur (ou alors je ne sais pas comment faire avec simplement du javascript) et ensuite comme j'ai des appels successifs avec des reload en fonction du localStorage, le code avec valeur dans l'URL devient vite très compliqué ou va m'obliger à revoir le design pour mettre des ancres et passer les valeurs directement sur les ancres, enfin de pas très propres et pas maintenable par la suite ==> merci de la proposition, mais après un rapide coup d'oeil , je ne vais pas y aller pour les raisons que je viens de donner   :non:  
 
@energiez , un cookie , j'y avais bien pensé , il va falloir que je le gère pour le détruire et comme j'ai plusieurs instance du code en même temps j'ai peur de m'emmmeler les pinceaux  , en plus je n'ai jamais fait de cookie , tu vas me dire c'est une bonne raison pour essayer  :lol:  
 
dans tous les cas merci à vous tous pour vos réponses , je suis preneur d'autres suggestions si vous voyez autre chose
 
mais b**del qu'est ce qu'il est chia*t ce IE

Reply

Marsh Posté le 25-09-2013 à 02:37:49    

nan, c'est pas IE10 qui est chiante, IE10 est un très très bon browser. C'est juste toi qui ne t'es pas bien adapté et qui n'a pas les bonnes pratiques web.


---------------
Blablaté par Harko
Reply

Marsh Posté le 25-09-2013 à 11:32:41    

Pas besoin de php pour récupérer les arguments, tu peux le faire en js, tu récupères l'adresse, je ne sais plus comment exactement mais tu peux (var adresse = window.location ?).
Après tu recherches tes arguments dans l'adresse par expressions régulières.
 
Le cookie aussi est une bonne solution, tu dois pouvoir t'en sortir entre le nom du cookie et sa valeur.

Reply

Marsh Posté le 25-09-2013 à 13:39:13    

gatsu35 a écrit :

nan, c'est pas IE10 qui est chiante, IE10 est un très très bon browser. C'est juste toi qui ne t'es pas bien adapté et qui n'a pas les bonnes pratiques web.


hummm, c'est probablement (surement) de mon côté, enfin j'ai pas ces problèmes avec firefox et chrome , mais ces 2 là sont pas dans la même catégorie et sont un peu plus permissif quand le code n'est pas nikel-chrome:whistle:  

Reply

Marsh Posté le 25-09-2013 à 13:43:18    

MaybeEijOrNot a écrit :

Pas besoin de php pour récupérer les arguments, tu peux le faire en js, tu récupères l'adresse, je ne sais plus comment exactement mais tu peux (var adresse = window.location ?).
Après tu recherches tes arguments dans l'adresse par expressions régulières.
 
Le cookie aussi est une bonne solution, tu dois pouvoir t'en sortir entre le nom du cookie et sa valeur.


merci de ces précisions, je vais regarder du côté des arg car ça m'intrigue de voir comment passer des arg par java et récup java

Reply

Marsh Posté le 25-09-2013 à 13:43:18   

Reply

Marsh Posté le 25-09-2013 à 20:53:22    

Comme en php : mon-adresse?arg1=val1&arg2=val2
 
Sauf que là tu dois aller chercher toi-même le tout :
 

Code :
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.  <title>Page d'essai</title>
  5.  <script type="text/javascript">
  6.   function go() {
  7.    adresse = window.location;
  8.    adresse = /(\?.*)/.exec(adresse);
  9.    liste = RegExp.$1;
  10.    liste = liste.slice(1,liste.length);
  11.    arg = new Array;
  12.    val = new Array;
  13.    arg[0] = liste.slice(0,liste.search(/=/));
  14.    val[0] = liste.slice(liste.search(/=/)+1,liste.search(/&/));
  15.    args = liste.match(/&[^&]*/g);
  16.    for (i=0;i<args.length;i++) {
  17.     arg[i+1] = args[i].slice(1,args[i].search(/=/));
  18.     val[i+1] = args[i].slice(args[i].search(/=/)+1,args[i].length);
  19.    }
  20.    window.alert("Arguments : "+arg+" / Valeurs : "+val);
  21.   }
  22.  </script>
  23. </head>
  24. <body onLoad="go();">
  25. </body>
  26. </html>

Reply

Marsh Posté le 25-09-2013 à 21:29:47    

super merci bien

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed