我正在处理这个项目,我有多个保存在数组中的HTML页面。每次用户在一个页面上完成任务时,阵列就会自动洗牌,并为用户加载剩余的HTML页面并显示。
charset=utf8
以上工作正常,但现在我想在用户访问过的每3页后添加一个var getPages = localStorage.getItem("htmlPages");
if (document.title === "INDEX" || !getPages) {
var htmlPages = [
"page1.html",
"page2.html",
"page3.html",
"page4.html",
"page5.html",
"page6.html",
"page7.html",
"page8.html",
"page9.html",
"page10.html"
];
console.log('initializing html pages BEGIN');
var jsonhtmlPages = JSON.stringify(htmlPages);
window.localStorage.setItem("htmlPages", jsonhtmlPages);
console.log('initializing html pages END');
} else {
console.log('filling html pages');
var htmlPages = JSON.parse(getPages);
}
function RandomPages() {
shuffle(htmlPages);
if (htmlPages.length > 0) {
window.location.href = htmlPages[0];
} else {
console.log("tasks completed");
alert('ALL PAGES ARE DONE');
}
console.log(htmlPages.shift());
console.log(htmlPages);
var jsonPool = JSON.stringify(htmlPages);
window.localStorage.setItem("htmlPages", jsonPool);
console.log(htmlPages);
}
页面。我用了
break.html
但这不是正确的解决方案,或者它是否在哪里添加它?因为数组洗牌而且break.html不会保留它的位置。任何帮助将不胜感激,谢谢
答案 0 :(得分:0)
我会在RandomPages
的每次通话中递增一个计数器,例如pageViews++
。这应该在RandomPages
方法之外定义,因此每次调用都不会重置。
然后在检查if (htmlPages.length > 0)
之前,我会添加另一张检查
if (pageViews % 3 === 0) {
/* show break page and return/don't execute the next if check */
}