刷新页面时,停止safari显示未保存的表单提示

Stop safari from showing unsaved form prompt when page is refreshed

本文关键字:保存 表单 提示 显示 safari 停止 刷新      更新时间:2023-09-26

我有一个表单(只有一个文本区域),它是使用AJAX提交的,允许用户保存关于页面的注释。表单在页面上始终可见,您可以不断单击"保存"以不断更新备注。

在safari(但不是chrome或FF)中,如果您开始在表单中键入并点击重载,浏览器会提示您"是否确实要重载,您有未保存的更改"类型对话框。我的问题是,如果你保存笔记,然后点击重新加载,而不对文本区域进行任何进一步的更改,对话框也会弹出。在javascript中,是否有某种方法可以将表单标记为已提交//未更改,以便safari知道不显示提示?

我对safari不太确定,但在所有具有以下功能的浏览器中都可以有这种行为:

var confirmLeavePage = "Are you sure you want to exit this page, you have unsaved changes..."
window.onbeforeunload = askConfirm;
function askConfirm(){
    if (confirmLeavePage != false){
        return confirmLeavePage;
    }
}

那么当文档没有修改时,您所要做的就是将confirmLeavePage设置为false。

希望这能有所帮助。

这里可能不是解决问题的最佳方案。。但是,如果您从表单中删除html表单标记,应该可以解决问题。

由于您已经在使用ajax,因此可以直接从DOM中获取元素的值。。

示例。。。

 <form><textarea></textarea></form>

会发出消息。。其中

 <textarea></textarea>

将重新加载。

希望这能在周五下午有所帮助:)