2017-06-18 57 views
0

我的表單在頁面的頁腳(更多頁面),我需要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

這都不盡如人意,如果我這樣做是正確的。 我必須添加當前文件的網址嗎?它必須是像wwww.example.com/this.php或只是this.php完整的網址? – Simi

+0

請你可以告訴我如何刪除sessionStorage在新頁面加載的值?在答案中更新了 – Simi

+0

。 – gauravmuk