无法保存在LocalStorage中

时间:2015-11-15 21:43:14

标签: javascript jquery html5

我试图在Android上的Google Chrome浏览器中保存一篇文章。我使用以下代码,但内容应显示的页面显示为空白屏幕。文章没有得到保存。

function savePost() {
    var articleTitle = document.getElementById('entry-title').innerHTML;
    var articleDate = document.getElementById('entry-date').innerHTML;
    var articleContent = document.getElementById('entry').innerHTML;
    var articleLink = document.getElementById('browser').getAttribute('href');
    var saveData = {
        "title": articleTitle,
        "date": articleDate,
        "content": articleContent,
        "link": articleLink
    };
    if (localStorage) {
        var lastKey = Number(localStorage.key(localStorage.length - 1));
        for (var k = 0; k < 25; k++) {
            if (k == (lastKey + 1)) {
                try {
                    localStorage.setItem(k, JSON.stringify(saveData));
                } catch (e) {
                    if (e == ERR_QUOTA_EXCEEDED) {
                        alert("Storage full. Delete Some Items.");
                    }
                }
            }
        }
    } else {
        alert("Not supported for your device");
    }
}

function getSavedArticles() {
    var savedData, data;
    if (localStorage && localStorage['1'] !== 'undefined') {
        for (var n = 1; n < localStorage.length; n++) {
            savedData = localStorage.getItem(n);
            data = JSON.parse(savedData);
            $('<li><a href="#single" data-transition="slide" id="' + n + '"><h1>' + data.title + '</h1><p>' + getDays(data.date) + '</p></a></li>').appendTo("#saved_list");
            $('#saved-articles-list').on('click', n, function () {
                showPost(data.title, data.date, data.content, data.url);
            });
        }
        $("#saved_list").listview("refresh");
    } else {
        $("#saved_list").after('<div class=".error">No saved articles.</div>');
    }
}
$(document).ready(function () {
    $('#save-post').click(function () {
        savePost();
    });
    getSavedArticles();
});

这是一个演示: http://smushbits.com/smushbits/www

1 个答案:

答案 0 :(得分:0)

这是检查是否支持localStorage的最佳解决方案:

var localStorageSupported = (function() {
    try {
        var x = "test";
        localStorage.setItem(x, x);
        localStorage.removeItem(x);
        return true;
    } catch(e) {
        console.log(e);
        return false;
    }
})();

试试这个小提琴。 我重新格式化了你可怕的代码: JS Fiddle