您的位置:首页 > Web前端 > JavaScript

store.js - 实现本地存储(LocalStorage)

2016-05-30 11:47 633 查看
store.js 如下:

var store = (function () {

    var api               = {},

        win               = window,

        doc               = win.document,

        localStorageName  = 'localStorage',

        globalStorageName = 'globalStorage',
tableKeys=[],

        storage;

    api.set    = function (key, value) {};

    api.get    = function (key)        {};

    api.remove = function (key)        {};

    api.clear  = function ()           {};

    if (localStorageName in win && win[localStorageName]) {

        storage    = win[localStorageName];

        api.set    = function (key, val) { storage.setItem(key, val) };

        api.get    = function (key)      { return storage.getItem(key) };

        api.remove = function (key)      { storage.removeItem(key) };

        api.clear  = function ()         { storage.clear() };
api.forEach = function() {

return storage;
}

    } else if (globalStorageName in win && win[globalStorageName]) {

        storage    = win[globalStorageName][win.location.hostname];

        api.set    = function (key, val) { storage[key] = val };

        api.get    = function (key)      { return storage[key] && storage[key].value };

        api.remove = function (key)      { delete storage[key] };

        api.clear  = function ()         { for (var key in storage ) { delete storage[key] } };

    } else if (doc.documentElement.addBehavior) {

        function getStorage() {

            if (storage) { return storage }

            storage = doc.body.appendChild(doc.createElement('div'));

            storage.style.display = 'none';

            // See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx
            // and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx
            storage.addBehavior('#default#userData');

            storage.load(localStorageName);

            return storage;

        }

        api.set = function (key, val) {

            var storage = getStorage();

            storage.setAttribute(key, val);

            storage.save(localStorageName);

        };

        api.get = function (key) {

            var storage = getStorage();

            return storage.getAttribute(key);

        };

        api.remove = function (key) {

            var storage = getStorage();

            storage.removeAttribute(key);

            storage.save(localStorageName);

        }

        api.clear = function () {

            var storage = getStorage();

            var attributes = storage.XMLDocument.documentElement.attributes;;

            storage.load(localStorageName);

            for (var i=0, attr; attr = attributes[i]; i++) {

                storage.removeAttribute(attr.name);

            }

            storage.save(localStorageName);

        }

    }

    return api;
})();

js中引用方式:

1.引入文件:<script src="js/store.js" type="text/javascript"></script>

    store.clear();//清除全部

   

   //遍历所有

   var storage = store.forEach();
  for (var i=0; i<storage.length; i++) {
var key = storage.key(i)

                        var result= storage.getItem(key);

                       alert(result);
}

                                                                                                                                                                                                                               Songsong
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 存储