2017-10-03 2 views
0

私は配列に保持された複数のHTMLページを持っているこのプロジェクトに取り組んでいます。ユーザーが1ページで作業を終えるたびに、配列はシャッフルされ、残りのHTMLページがロードされ、ユーザー用に表示されます。htmlページの配列内の特定の場所

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); 
} 

上記これは正常に動作しますが、今私は、ユーザーが訪問されているすべての3ページ後break.htmlページを追加します。私は

htmlPages.splice(3, 0, "Break.html"); 

を使用しますが、これは適切なソリューションではないか、それを追加する場所、それがその後、ある場合には?アレイのシャッフルとbreak.htmlがその場所を保持しないようにしてください。何か助けていただければ幸いです。ありがとうございます。

答えて

0

pageViews++のように、私はRandomPagesの呼び出しごとにカウンタを増やします。これはRandomPagesメソッドの外で定義する必要がありますので、すべての呼び出しをリセットすることはありません。あなたがif (htmlPages.length > 0)をチェックする前に

その後、私はそれが働いた

if (pageViews % 3 === 0) { 
    /* show break page and return/don't execute the next if check */ 
} 
+0

感謝のために別のチェックを追加することになります。) –

関連する問題