Originariamente inviato da fcaldera
Tu no, ma purtroppo per lui e per il resto del mondo che sviluppa non si può ignorare che ci sono ancora milioni di utenti che usano quei browser
fcaldera, prova ad aggiungere in testa alla pagina questo codice di compatibilità e provalo con i vecchi browsers, io non posso farlo.. Ho simulato l'oggetto localStorage coi cookies per i browser più vecchi. Fammi sapere!
codice:
if (!localStorage) {
Object.defineProperty(window, "localStorage", new (function () {
function encode(sTxt1) { return sTxt1.replace(/[;=%]/g, "%$&"); }
function decode(sTxt2) { return sTxt2.replace(/%([;=%])/g, "$1"); }
this.get = function () {
var oReturn = {}, aCookies = document.cookie.split(/\s*;\s*/);
for (var iCookie, iCookId = 0; iCookId < aCookies.length; iCookId++) {
iCookie = aCookies[iCookId].split("=");
if (iCookie.length > 1) { oReturn[decode(iCookie[0])] = decode((iCookie[1])) };
}
Object.defineProperty(oReturn, "getItem", { value: function (sKey) { return this[sKey]; }, writable: false, enumerable: false, configurable: false });
Object.defineProperty(oReturn, "key", { value: function (nKeyId) { return Object.keys(this)[nKeyId]; }, writable: false, enumerable: false, configurable: false });
Object.defineProperty(oReturn, "setItem", { value: function (sKey, sValue) { if(!sKey) { return; } document.cookie = encode(sKey) + "=" + encode(sValue) + ";path=/"; }, writable: false, enumerable: false, configurable: false });
Object.defineProperty(oReturn, "length", { get: function () { return Object.keys(this).length; }, enumerable: false, configurable: false });
Object.defineProperty(oReturn, "removeItem", { value: function (sKey) { if(!sKey) { return; } document.cookie = encode(sKey) + "=;path=/"; }, writable: false, enumerable: false, configurable: false });
return oReturn;
};
this.enumerable = false;
this.configurable = false;
})());
}