`
enet_java
  • 浏览: 55138 次
社区版块
存档分类
最新评论

浏览器前进后退时表单状态的保持

阅读更多
相关文章:  
向你推荐浏览器中妈妈辈:opera
JSI API之BrowserInfo、EventUtil讨论
精通JavaScript DOM事件

推荐圈子: D语言
更多相关推荐 先说一下各浏览器默认下,表单回退时的现象:

除过ff以为,其余浏览器都会保存表单的状态,
ff加<meta  http-equiv="Cache-Control"   CONTENT="private,must-revalidate">   以后也保存状态成功

Cache-Control取值有如下几个:public,private,no-cache,no-store,no-transform,must-revalidate,proxy-revalidate,max-age

Cache-Control属于http1.1范畴,主流浏览器都支持http1.1,但是貌似只有FF遵守"Cache-Control".

如果想保留表单状态,基本<meta  http-equiv="Cache-Control"   CONTENT="private,must-revalidate">就可以.

如果想重置表单,射雕兄写过一个方法如下:
   1. Safari 和 Opera 是两个极端,一个完全还原,一个完全保留。
   2. Firefox 下最简单的办法是设置 autocomplete = ‘off’ 属性。(ff2下无效)
   3. IE 必须在 setTimeout 中还原表单值才有效。
   4. Chrome 除了不支持 onpageshow, 其它表现和 Firefox 一致。


各浏览器响应Cache-Control如下:

在回退和前进时:
Cache-Control为no-store时:
FF: onload,DOMContentLoaded,页面执行代码和onpageshow都会被调用,否则只调用onpageshow(页面状态会被完美保留,类似于safari)
一种例外情况就是添加unload,有unload事件时,不管Cache-Control为何值,onload,DOMContentLoaded,页面执行代码和onpageshow都调用.

IE有没有no-store,onload都会被调用.没有onpageshow事件.
表单状态保留

chrome和IE一样.

safari:无论Cache-Control为何值,都不会触发任何onload,DOMContentLoaded,页面执行代码,(有一种例外情况,当有unload事件时,onload,DOMContentLoaded,页面执行代码都会执行)

另外,safari虽然不触发 onload,DOMContentLoaded,页面执行代码.但是页面当前状态会被完美保留(就像在两个标签页之间切换一样自然)
表单状态保留

opera:
opera和其他浏览器不同之处,每次在地址栏敲回车都算一次跳转,虽然url没变,但是历史记录却有了(刷新没事)...
Cache-Control 无论为何值,都不会触发onload,DOMContentLoaded,页面执行代码...window.onfoucs不执行
引用射雕兄的话:忘掉opera......(如果想重置表单的话)

补充本人所用浏览器:   IE7,   FF3.5.1,   safari4.0.2,   opera10 beta,     chrome2
分享到:
评论

相关推荐

    屏蔽浏览器的后退按钮

    ### 屏蔽浏览器的后退按钮 在网页开发过程中,有时会遇到用户需求或特定应用场景,需要阻止浏览器的后退按钮功能。这篇文章旨在探讨如何实现这一功能,并解释为什么这种做法可能不是最佳选择。 #### 为什么要屏蔽...

    js禁止浏览器页面后退功能的实例(推荐)

    在JavaScript编程中,有时我们需要禁用浏览器的默认后退功能,比如在用户完成登录、支付等操作后,防止用户意外点击后退按钮导致数据丢失或出现错误状态。本篇文章将详细解析如何通过JavaScript实现这一功能。 首先...

    页面禁止各种浏览器后退.txt

    - **`popstate`事件**:当用户使用浏览器的前进/后退按钮时触发。 这些方法可以用来改变浏览器地址栏显示的URL,同时保持页面内容不变。这样做的好处是用户可以在不刷新页面的情况下,看到URL的变化,从而提升用户...

    JS实现仿UC浏览器前进后退效果的实例代码

    在JavaScript中实现类似UC浏览器前进后退效果的关键在于利用浏览器的历史记录管理机制。这个实例代码主要是为了模拟浏览器的前进和后退按钮的行为,通常在移动端的网页应用中使用,以提供用户友好的导航体验。 首先...

    后退、刷新、前进按钮.rar

    在网页浏览过程中,"后退"、"刷新"和"前进"按钮是用户与浏览器交互的重要元素,它们提供了方便快捷的方式,帮助用户在浏览历史中导航。这些功能主要由JavaScript(JS)进行实现,特别是在创建自定义交互效果时。本文...

    解决Vue 浏览器后退无法触发beforeRouteLeave的问题

    在这种情况下,如果用户点击浏览器的后退按钮,Vue Router并不会触发`beforeRouteLeave`,因为它认为这是一个历史状态的恢复,而非新的导航过程。 为了解决这个问题,一种不那么理想但可行的解决方案是通过添加一个...

    javascript实现禁用浏览器后退按钮

    例如,在某些登录验证后的页面,为了防止用户通过后退按钮回到登录前的状态,从而绕过登录验证;或者在某些表单填写完成后,为了避免用户不小心按到后退键导致数据丢失等场景。本文将详细介绍几种使用JavaScript来...

    javascript经典特效---前进后退按钮.rar

    例如,用户可能在一个复杂的表单中操作,点击“后退”按钮时,希望返回到上一步填写的信息,而不是浏览器的历史页面。这就是JavaScript可以发挥作用的地方。 首先,我们需要理解HTML中的按钮元素。`&lt;button&gt;`或`...

    基于WebView的安卓android浏览器,基本功能齐全

    - **前进/后退**:WebView提供了goForward()和goBack()方法,分别用于前进和后退到之前的网页。 - **刷新**:调用reload()方法可以刷新当前显示的网页内容。 - **返回主页**:通常需要开发者自行实现,可以通过...

    super_prefetcher前进后退键盘脚本

    "super_prefetcher前进后退键盘脚本"是一个利用JavaScript编写的用户脚本,主要用于浏览器环境,特别是与油猴子(Tampermonkey)这样的浏览器扩展配合使用。油猴子是一款流行的浏览器扩展,它允许用户在浏览器中运行...

    js 禁用浏览器的后退功能的简单方法

    在JavaScript中禁用浏览器的后退功能是一种常见的需求,特别是在某些特定的应用场景下,比如防止用户意外离开当前页面或者在处理表单提交时避免数据丢失。`history.forward()` 是一个可以实现这一目标的方法,但这种...

    Android浏览器开发设计

    Android浏览器的界面设计需考虑用户体验,包括地址栏、前进后退按钮、书签管理、多窗口浏览等功能。布局通常采用ConstraintLayout或LinearLayout等,结合RecyclerView展示历史记录和书签。使用BottomNavigationView...

    禁用浏览器后退按钮并在浏览器后退按钮单击事件上调用Javascript功能

    在网页开发中,有时我们需要控制用户的浏览行为,例如在用户完成特定操作如注销或提交表单后,防止他们通过浏览器的后退按钮返回到之前的状态。这个需求在标题"禁用浏览器后退按钮并在浏览器后退按钮单击事件上调用...

    可以自动控制网页操作的浏览器MutouBrowser(Pro).rar

    木头多功能浏览器(专业版)可以生成自动刷新网页监控网页...11、支持自动打开、关闭浏览器标签页,浏览器自动前进后退功能; 12、浏览器自动执行自定义javascript或jquery代码。 13、可以完成复杂的网页自动控制流程。

    formwizard:基于jQuery UI的jQuery插件,可将表单转换为多步向导。 与用于提交AJAX表单的jQuery表单插件,用于客户端验证的验证插件以及用于启用浏览器后退和前进按钮的BBQ插件集成在一起

    该插件通过与以下jQuery插件集成来支持AJAX表单提交,表单验证以及浏览器的后退和前进按钮: jQuery表单 jQuery验证 用法 显然,请确保具有正确的包含-该插件已通过以下版本进行了测试,但也应与较新的版本一起...

    delphi实现简单浏览器

    在这个简单浏览器中,可能包括地址栏、前进/后退按钮、刷新/停止按钮、以及可能的书签功能。 7. **多线程考虑**: 虽然TWebBrowser控件的默认行为是在主线程中运行,但为了提高用户体验,可能会考虑在单独的线程中...

    用delphi做的简单浏览器

    【描述】中的"小小的浏览器"表明这是一个小型项目,可能包含了一些基础的浏览器功能,如地址栏输入、页面加载、前进/后退按钮等。对于初学者来说,这样的项目是一个很好的实践机会,能让他们理解Delphi的事件驱动...

    java swing 内嵌浏览器

    3. **API使用**:DJNativeSwing提供了丰富的API接口,包括导航控制(前进、后退、刷新)、页面加载状态监听、JavaScript交互等功能。开发者需要熟悉这些API来实现特定的业务需求。 4. **事件处理**:内嵌浏览器中的...

    vb浏览器代码

    1. **窗体(Form)设计**:浏览器界面通常包含地址栏、前进/后退按钮、刷新/停止按钮、书签等元素。在VB中,这些是通过添加各种控件(如TextBox、Button、MenuStrip等)到窗体上实现的。 2. **WebBrowser控件**:VB...

    webbrowser编写的浏览器

    浏览器具备基本的浏览功能,如前进、后退、刷新、停止等,这些都是用户日常浏览网页所必需的。然而,它缺少了设置选项和收藏夹功能,这在现代浏览器中是非常重要的特性,允许用户保存常用网址和个性化配置浏览器设置...

Global site tag (gtag.js) - Google Analytics