history.back(); doesn't trigger $(document).ready();

白昼怎懂夜的黑 提交于 2019-11-27 23:10:37

问题


I have a webpage that use $(document).ready() to build the interface. Then the user can go to a child page, and to go back to the original page he can press the browser's "previous" button or a "Return" button in the page which triggers a history.back();. Back on the original page, $(document).ready() is not triggered so the page is missing informations.

is there a way to trigger it automatically like if it was a "real load"?

thank you!

edit

placing an alert in it, the alert is poped but stuff is missing in my interface like if some part of the ready event is missing. Investigating...

edit 2

hahahahaha in document.ready I click some checkbox which are supposed to be unchecked. When I "back" on this page, they are checked so they become unchecked because I reclick them.

Sorry, this is completely my bad :(


回答1:


A quick solution to this problem, use "onpageshow" instead.

window.onpageshow = function(event) {
    //do something
};



回答2:


If the user uses the Back button to navigate and you require a full reload of the page, you can set the NO-CACHE policy of the page.

This way the browser is forced to reload the page from the server, even using the Back button.




回答3:


1.) put scripts at the bottom of your page.
2.) execute plugins and whatnot in your last script tag(s).
3.) Do not use onDomReady implementations at all, it's redundant.

People are so accustomed to onload or ondomready, they overlook the fact that putting your scripts at the bottom of a page does virtually the same thing without the need to poll and see if your html is available.

Furthermore, it's also good practise as your scripts do not block html/css rendering either.

Not depending on onDomReady or onLoad implementations solves a lot of issues.




回答4:


Very interesting question. You might need to re-trigger the event/function when the page gets focus, or something similar. you might also need to keep a flag variable to track whether an 'event re-triggering' is in order.



来源:https://stackoverflow.com/questions/3628536/history-back-doesnt-trigger-document-ready

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!