[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。

你可能感兴趣的:([jQuery Mobile] jQuery Mobile消除提示“确认重新提交表单”的方法)