2017-06-18 4 views
0

私は自分のウェブ(ページ数)のフッタにフォームを持っており、PHPのページを更新するときにフォームのスクロール位置を保持するためにjavascriptが必要です。 フォームが提出されたときの位置を保持するJavascript

は、私はこれを試してみました:

<input type="submit" onclick="myunction()" value="Send" name="submit" class="submitsub"> 

<script type="text/javascript"> 

$(window).scroll(function() { 
    sessionStorage.scrollTop = $(this).scrollTop(); 
}); 

$(document).ready(function() { 
    if (sessionStorage.scrollTop != "undefined") { 
    $(window).scrollTop(sessionStorage.scrollTop); 
    } 
}); 


function myunction(){ 
    $("form").submit(); 
} 
</script> 

しかし、このスクリプトは、常に別のページに位置を送って、そのページがボタンをクリックせずにスクロールしています。

答えて

0

あなたのコードはページ上でそれを防ぐためのチェックがないためです。

$(document).ready(function() { 
    if (window.location.href === 'urlWhereYouWantItToRun' && sessionStorage.scrollTop != "undefined") { 
    $(window).scrollTop(sessionStorage.scrollTop); 
    } 
}); 

代わりに、新しいページの読み込み時にsessionStorageから値を削除することができます。すべてのアプローチをまとめるために、そう

window.onload = function() { 
delete sessionStorage.scrollTop; 
} 

あなたがして、ページの負荷に値を削除することができ、私は右のそれをやっている場合

// Page 1 
$(document).ready(function() { 
    if (window.location.href === 'urlWhereYouWantItToRun' && sessionStorage.scrollTop != "undefined") { 
     $(window).scrollTop(sessionStorage.scrollTop); 
    } 
}); 


// Page 2, and not on page 1 
window.onload = function() { 
    delete sessionStorage.scrollTop; 
}; 

window.onbeforeunload = function() { 
    delete sessionStorage.scrollTop; 
    return; 
} 
+0

これは、うまく機能していません。 現在のファイルのURLを追加する必要がありますか? wwww.example.com/this.phpやthis.phpのような完全なURLでなければなりませんか? – Simi

+0

新しいページの読み込み時にsessionStorageから値を削除する方法を教えてください。回答で – Simi

+0

が更新されました。 – gauravmuk

関連する問題