Javascript 在刷新页面时停止safari显示未保存的表单提示
我有一个表单(只有一个文本区域),它是使用AJAX提交的,允许用户保存关于页面的注释。表单在页面上始终可见,您可以不断单击“保存”以不断更新注释Javascript 在刷新页面时停止safari显示未保存的表单提示,javascript,html,safari,Javascript,Html,Safari,我有一个表单(只有一个文本区域),它是使用AJAX提交的,允许用户保存关于页面的注释。表单在页面上始终可见,您可以不断单击“保存”以不断更新注释 在safari(但不是chrome或FF)中,如果您开始在表单中键入并单击“重新加载”,浏览器会提示您“是否确实要重新加载,您有未保存的更改”类型对话框。我的问题是,如果保存备忘,然后单击“重新加载”而不对文本区域进行任何进一步更改,该对话框也会弹出。javascript中是否有某种方法可以将表单标记为已提交//未更改,以便safari不显示提示 这可
在safari(但不是chrome或FF)中,如果您开始在表单中键入并单击“重新加载”,浏览器会提示您“是否确实要重新加载,您有未保存的更改”类型对话框。我的问题是,如果保存备忘,然后单击“重新加载”而不对文本区域进行任何进一步更改,该对话框也会弹出。javascript中是否有某种方法可以将表单标记为已提交//未更改,以便safari不显示提示 这可能不是解决您问题的最好办法。。但是,如果从表单中删除html表单标记,应该可以解决这个问题 因为您已经在使用ajax,所以可以直接从DOM获取元素的值 例如
<form><textarea></textarea></form>
将发出“你确定吗”的信息。。在哪里
<textarea></textarea>
只需重新加载
希望这能在周五下午有所帮助:)我对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
希望这能有所帮助。感谢您的想法,但我希望将其保留为一个表单,以便在禁用javascript时作为标准提交。