2016-05-30 13 views
0

ページ2.htmlにあり、.nextボタンをクリックすると、ページ3.htmlにナビゲートするのではなく無限ループに入ります。window.location.hrefは偽のステートメントを返すにもかかわらず無限ループで実行されます

/* Init current page */ 
var current_page = localStorage.getItem("current_page"); 

/* If current page is undefined set set it to first page */ 
if (current_page === null) { 
    current_page = 1; 
    localStorage.setItem("current_page", current_page); 
} 

/* Load first page or where user had left off */ 
if (current_page != 1){ 
    window.location.href = current_page + ".html"; 
    return false 
} 


/* Navigate to next page */ 
$('button.next').on('click', function(e){ 
    e.preventDefault(); 
    current_page = parseInt(current_page)+1; 
    localStorage.setItem("current_page", current_page); 
    location.reload(); 
}); 

、彼らが落ちると戻ら場合包み、ユーザーが最後に訪問したページが表示されなければならないので、私は、ページの読み込み中にwindow.location.hrefを定義しました。各ページで

+1

この場合、 'return false'が何をすると思いますかわかりません。ページはその行の前にリロードされるので、決して実行されません。あなたは正確に何をしようとしていますか?壊れたコードは、コードが行うことを期待するものの適切な説明の代用にはなりません。 – charlietfl

+0

@charlietflユーザーが '.next'ボタンをクリックすると、次のページに移動する必要がありますが、代わりに不定ループで実行されます。 –

+0

'current_page'が2の場合、コードは各リロード時に' window.location.href = current_page + ".html"; 'を呼び出します。 btw 'window.location.href'がページをリロードするので意味がありません –

答えて

0

は、別の方法としては、ファイルからアクティブなページ番号を取得するためのURLを解析することができます

var activePage = 3; 

if (current_page != activePage){ 
    window.location.href = current_page + ".html";  
} 

をリダイレクトすることと比較する代わりに、常に行う前1に比較し、あなたのファイル名の番号と一致し、変数activePageを設定しました名前

関連する問題