我试图在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();
});
答案 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