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);要返回前面的页面。
window.history 和 DWZ 框架的更多相关文章
- 关于window.history.back()后退问题
		
Windows下的window.history.back()后退后返回的不仅仅是前一个页而是前一个页的状态.假设一个页我改动了3次那必须后退3次才干回到前一个页.并且数据库中删除的数据依旧显示在上面感 ...
 - window.history.back()的改进方法window.history.go()
		
今天在做项目时,測试人员提出了一条bug,起初没当回事,在改动过程中才意识到其重要性,故记录下来. 依照需求,系统应该实现例如以下的功能:有三个关联的页面a.aspx(简称a),b.aspx(简称b) ...
 - JS window对象 History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。语法:  window.history.[属性|方法]
		
History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能. 注意:从窗口被打开的那一刻开始记录,每个浏览器窗口.每个标签页乃至每个框架,都 ...
 - safari 浏览器window.history.go(-1)运行无效解决办法
		
这几天做了几个手机端app的wap页面,做完之后发现一个问题,那就是ios系统下的safari浏览器不支持window.history.go(-1)..无语... 解决方法很简单!加上return f ...
 - javascript:window.history.go(-1)
		
history是你浏览过的网页的url(简单的说就是网址)的集合,也就是你的浏览器里的那个历史记录.它在js里是一个内置对象,就跟document一样,它有自己的方法,go就是其中一个. 这个方法的参 ...
 - window.history.pushState与ajax实现无刷新更新页面url
		
ajax能无刷新更新数据,但是不能更新url HTML5的新API: window.history.pushState, window.history.replaceState 用户操作history ...
 - javascript宿主对象之window.history
		
window.historys属性允许我们操作同一个浏览器回话中的已访问页面,例如我们可以看到在这之前我们浏览页面的数量: window.history.length 由于隐私保护,我们无法获取这些页 ...
 - DWZ框架一些技巧
		
DWZ框架from表单提交后关闭对话框 注意大小写 <input type="hidden" name="callbackType" value=&quo ...
 - 由window.history.back()引发的问题
		
由window.history.back()引发的问题 编写人:CC阿爸 2015-1-30 今天在这里,我想与大家一起分享由windows.history.back()引发的问题,笔者在实际开发当中 ...
 
随机推荐
- SSH 框架
			
SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架.是把多个框架(Struts.Spring以及Hibernate)紧密的结合在一起,用于 ...
 - jQuery Grid With ASP.Net MVC
			
jQuery Grid 能够在 ASP.NET MVC 中轻松地实现分页. 排序. 筛选以及 jQuery 插件网格中的 CRUD 操作. 具有以下特征: 时尚的表格数据呈现控件. JavaScrip ...
 - 《内容生产向视频过渡:Facebook收购QuickFire意欲何为?》有感
			
1月9日消息,Facebook周四表示,已收购位于加州圣迭戈的QuickFire Networks. 一.解决视频传输问题 QuickFire是一家开发视频内容发布设备和转码处理软件的创业公司,其创办 ...
 - JavaScript(三)——DOM操作一
			
一.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 二.Window对象操作 1.属性和方法: 属性(值或者子对象): op ...
 - Java并发工具类Semaphore应用实例
			
package com.thread.test.thread; import java.util.Random; import java.util.concurrent.*; /** * Semaph ...
 - ASP.NET MVC 监控诊断、本地化和缓存
			
这篇博客主要是针对asp.net mvc项目的一些常用的东东做一个讲解,他们分别是监控诊断.本地化和缓存.虽然前两者跟asp.net mvc看上去好像是没什么关联. 但其实如果真正需要做asp.net ...
 - su,exit,adduser,deluser,usermod,groups
			
exit 退出当前用户 su 切换到指定用户,缺省表示切换到root用户 adduser 创建一个用户的时候其实是创建了一个用户和同名的用户组,它们都会UID,所属的GID,创建时一个用户属于和自己同 ...
 - centos---无线上网的电脑所安装的虚拟机网络设置
			
1.共享设置 找到本地的无线网卡,右键---属性---共享,设置如下 2.修改VMware Network Adapter VMnet1 选中VMware Network Adapter VMnet1 ...
 - linux线程同步(2)-条件变量
			
一.概述 上一篇,介绍了互斥量.条件变量与互斥量不同,互斥量是防止多线程同时访问共享的互斥变量来保 ...
 - URL tailing slash
			
Without tailing slash request header GET /snippets HTTP/1.1 User-Agent: Fiddler Host: 192.168.128.13 ...