美文网首页Front End
[jQuery Mobile] jQuery Mobile消除提

[jQuery Mobile] jQuery Mobile消除提

作者: 何幻 | 来源:发表于2016-03-04 07:11 被阅读1201次

    背景:
    如果点击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消除提

        本文链接:https://www.haomeiwen.com/subject/ifpnkttx.html