js阻止页面刷新

JavaScript017

js阻止页面刷新,第1张

网页中用户的表单填写到一半,或者ajax请求发送期间,如果用户刷新浏览器可能会导致数据保存失败。需要阻止页面刷新,这时可以通过监听页面window.onbeforeunload事件函数来处理。

window.onbeforeunload = function(e) {

var dialogText = 'Dialog text here'

e.returnValue = dialogText

return dialogText

}

不过chrome不支持自定义显示文字,固定为

“要重新加载该网站吗?

系统可能不会保存您所做的修改”

而firefox和safari就会正常使用return value里面的文字

参考:

-- https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#Browser_compatibility

可以将form表单的onsubmit属性里添加上 "return false",然后在要提交表单的地方使用js来提交表单。

<form action="" method="" id="Submitform" onsubmit="return false">

<button type="button" onclick='doSubmitForm()'>提交<button/>

</form>

<script>

function doSubmitForm(){

var form = document.getElementById('Submitform')

form.submit()

}

</script>