В качестве дополнительного бонуса IE откажется от любой попытки обойти эту проблему.
Разумная вещь, которую нужно сделать, - это заглушить свой собственный фиктивный localStorage, чтобы, по крайней мере, ваша вещь не сломаласьпри загрузке из локальной файловой системы:
if (document.all && !window.localStorage)
{
window.localStorage = {};
window.localStorage.removeItem = function () { };
}
Есть какие-нибудь предположения относительно того, какое предупреждение (window.localStorage) появится после запуска этого?Вы догадались "неопределенный" ???
Спасибо, IE!Теперь есть один уродливый взлом, который мы можем сделать, чтобы сделать эту работу.Поскольку IE не позволит вам повторно использовать его зарезервированное слово «localStorage», мы просто перенесем все это в другое место:
window.localStorageAlias = window.localStorage;
if (document.all && !window.localStorage)
{
window.localStorageAlias = {};
window.localStorageAlias.removeItem = function () { };
}
Так что теперь, где бы вы ни говорили, вы обычно говорите localStorage ['beans'] = 7, вы просто делаете localStorageAlias [' beans '] = 7 и возвращаетесь в бизнес.Естественно, IE фактически не будет хранить ничего между сеансами при запуске из локальной файловой системы.Но, по крайней мере, он не сломается.
За дополнительную плату вы можете исправить приведенный выше код для замены в какой-либо форме постоянного хранилища, которое IE на самом деле будет использовать при локальном запуске.