[jQuery Mobile] jQuery Mobile消除提示“确认重新提交表单”的方法

背景:
如果点击submit按钮,使用post请求提交表单的话,
再刷新页面,会提示:

确认重新提交表单
您所查找的网页要使用已输入的信息。返回此页可能需要重复已进行的所有操作。是否要继续操作。

发现:
jQuery Mobile默认使用ajax方式提交表单。
可以设置$.mobile.ignoreContentEnabled = true;并在容器上添加data-ajax="false"来禁用ajax方式提交。

但是,奇怪的是,jQuery Mobile用post方式提交表单后,浏览器不会刷新不会提示“确认重新提交表单”。

原因:
分析jQuery Mobile的源代码,发现使用了以下方法来禁止提示。

window.history.replaceState( state, state.title || document.title, href );

window.history.replaceState是html提供的新方法,用来设置浏览器历史状态。
相关的还有,window.history.pushState

总结:
可以使用window.history.replaceState(null,null,window.location.href);来禁用“确认重新提交表单”。

另外,pushStatereplaceState可以无刷新的将url改变为同域的其他url。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容