我目前正在編寫一個JavaScript程序,我想刷新一個網頁,然後繼續調用一個函數,修改後來新刷新的頁面。但是,無論何時調用location.reload(),頁面都會在刷新之前執行操作,儘管事實上我已經將它們放在代碼中的刷新之後。如何讓頁面在刷新後形成動作?如何刷新頁面,然後繼續執行操作?
3
A
回答
1
頁面重新加載後Javascript不會繼續執行,它會重新開始。
如果你真的需要刷新頁面然後開始一個特定的動作,你必須有一些方法來告訴你的代碼從停止的地方開始。
解決此問題的一種方法是向網址添加哈希值,該哈希值將用作繼續執行的標誌。
window.location.href += "#continueScript";
location.reload();
然後在你的函數中檢查散列。
if(window.location.hash == "#continueScript") {
continueMyScript();
};
3
你可以欺騙做到這一點使用的sessionStorage:
//in some function:
sessionStorage.setItem('onReload', 'doFn1');
location.reload();
//elsewhere, to be called on page load:
if(sessionStorage.getItem('onReload') === 'doFn1') {
sessionStorage.setItem('onReload', '');
// do your code
}
不過說到底,這是不是一個好的做法。你爲什麼重新加載頁面?你可能可以完成你想要的而不用頁面重新加載。
相關問題
- 1. 如何在繼續執行之前'刷新'UI線程操作
- 2. 繼續使用頁面後cookie.js刷新
- 3. 與默認操作,然後再繼續執行AJAX請求
- 4. 內容頁面Response.End繼續執行主頁面執行
- 5. 頁面刷新後Flash上傳會繼續
- 6. 如何不在CakePHP3中添加操作後刷新頁面
- 7. 即使刷新頁面,Javascript仍會繼續運行
- 8. 如何在頁面刷新後延遲javascript函數執行?
- 9. 在刷新JQM頁面,然後火pageinit
- 10. 如何在ios/xcode中聲明c後繼續執行或繼續執行?
- 11. 如何執行IF語句,然後繼續執行其他代碼
- 12. componentDidUpdate在頁面導航後繼續執行
- 13. 執行是刷新JSP頁面
- 14. 我執行ssh後如何繼續執行我的python腳本
- 15. 等待地理編碼器功能完成執行,然後繼續然後繼續
- 16. openerp RML,如何繼續在新頁面中打印表格行?
- 17. 加載頁面,然後執行JavaScript的
- 18. 在調用操作後頁面不會刷新
- 19. 在asp.net中的回發操作後刷新頁面
- 20. 頁面刷新時繼續隱藏HTML輸入字段?
- 21. 頁面加載後如何刷新javascript
- 22. 進入後臺後,應用程序是否繼續執行網絡操作?
- 23. 執行操作並重定向到相同的URL不會刷新頁面
- 24. 彈出窗口在我關閉並刷新頁面後繼續打開?
- 25. 可以wp_die()第一個塊,然後繼續頁面加載
- 26. Chrome擴展,進樣HTML然後繼續加載頁面
- 27. 頁面刷新/刷新在jQuery Mobile的每個頁面上執行$(document).ready()
- 28. jQuery Mobile:如何使用動態DOM操作刷新頁面?
- 29. 首先在IEnumerable中跳過,然後繼續執行
- 30. 即使條件滿足後,for循環仍然繼續執行
您必須將該代碼放在*新頁面*中。 'location.reload()'會影響新頁面後,舊頁面沒有任何操作。這就是它的工作原理。 – Pointy
你能否給我們提供一些示例代碼,並給我們一些你想要完成的內容的背景? –
'location.reload()'是非阻塞的,因此它在完成重新加載之前被執行 –