window.history 和 DWZ 框架
DWZ框架的ajax請求返回的一般都是一個HTML片段,整個頁面是由一個個HTML片段組成的,可以由TAB切換其內容,但是只有一個body和HEAD,一般head 和 菜單欄是不會動的。
今天遇到一個問題,當一個點擊進入一個tab頁面時,這個tab頁的布局完全和其他頁面的tab頁面不一致,也就是其菜單欄和head的內容完全改變了。當用戶要返回原來的樣式時候,用自己寫的JS方法把樣式還原可以。但是是頁面上的一個button。
當用戶用瀏覽器自帶的前進后退返回的時候,問題來了,因為瀏覽器的前進后退是根據瀏覽歷史的緩存來的(暫且這么理解吧)。這個歷史是一個數組來儲存的。前進就是顯示后一個的歷史,后退就是前一個的。當然,都是如果list支持的情況下;
瀏覽器的前進后退會觸發頁面的 onunload 和 onbeforeunload 事件 在使用event.returnValue("string")就會彈出你想要的警告。
由于正常的瀏覽器history是一個個完整的頁面,前進后退按鈕會觸發其onunload等事件,但是DWZ這種框架不會,因為你始終在一個頁面上進行操作。當然不會觸發onunload等事件。前進后退只會顯示歷史的HTML片段。
那么,在點擊后退后 頁面樣式變形等問題出現了,使用setInterval 判斷這個tab的父元素是否顯示來判斷是否回到原來頁面。樣式能還原,但是多前進后退幾次就要出現問題。
暫時的解決方法,讓其history一直在最后就是每次點擊后退返回后讓其window.history.go(1);要返回前面的頁面。
?
轉載于:https://www.cnblogs.com/strangerqt/p/4009968.html
總結
以上是生活随笔為你收集整理的window.history 和 DWZ 框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么申请提光大银行信用卡临时额度?提额有
- 下一篇: 确认类是否可以在运行期使用