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
倒计时可以用js的setTimeout来控制http://www.tocus.com.cn/?send=article_show&id=34&class=2
可以循环计时,而对于页面刷新,我们可以屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键来达到效果
<script>
//屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键
function document.oncontextmenu(){event.returnValue=false}//屏蔽鼠标右键
function window.onhelp(){return false} //屏蔽F1帮助
function document.onkeydown(){
if((window.event.altKey)&&((window.event.keyCode==37)||(window.event.keyCode==39))){
//屏蔽Alt+方向键←
//屏蔽Alt+方向键→
event.returnValue=false
}
if((event.keyCode==8)||(event.keyCode==116)||(event.ctrlKey &&event.keyCode==82)){
//屏蔽退格删除键
//屏蔽F5刷新键
//Ctrl+R
event.keyCode=0
event.returnValue=false
}
if(event.keyCode==122){event.keyCode=0event.returnValue=false}//屏蔽F11
if(event.ctrlKey &&event.keyCode==78)event.returnValue=false //屏蔽Ctrl+n
if(event.shiftKey &&event.keyCode==121)event.returnValue=false //屏蔽shift+F10
if(window.event.srcElement.tagName=="A" &&window.event.shiftKey)
window.event.returnValue=false //屏蔽shift加鼠标左键新开一网页
if((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
window.showModelessDialog("about:blank","","dialogWidth:1pxdialogheight:1px")
return false
}
}
</script>
第一种方法:<script
language="”javascript”">
var
checkSubmitFlg
=
false
function
checkSubmit(){
if(checkSubmitFlg
==true){
return
false
//当表单被提交过一次后checkSubmitFlg将变为true,根据判断将无法进行提交。
}
checkSubmitFlg
==true
return
true
}
<
/script
>
<
form
name=”form1”
method=”post”
onsubmit=”return
checkSubmit()”>
………..<
/form>
第二种方法:
在onsubmit事件中设置,在第一次提交后使提交按钮失效,代码如下:
<form
action=”about:blank”
method=”post”
onsubmit
=”getElementById(‘submitInput').disabled=truereturn
true”
target=”_blank”>
<input
type=”submit”
id=”submitInput”/>
</form>
<script
Language='JavaScript'>
function
formsubmit()
{
Today
=
new
Date()
var
NowHour
=
Today.getHours()
var
NowMinute
=
Today.getMinutes()
var
NowSecond
=
Today.getSeconds()
var
mysec
=
(NowHour*3600)+(NowMinute*60)+NowSecond
if((mysec-document.formsubmitf.mypretime.value)>600)
//600只是一个时间值,就是5分钟内禁止重复提交,值随你高兴设
{
document.formsubmitf.mypretime.value=mysec
}
else
{
alert('
按一次就够了,请勿重复提交!请耐心等待!谢谢合作!')
return
false
}
document.forms.formsubmitf.submit()
}
</script>
</HEAD>
<BODY
BGCOLOR="#FFFFFF">
<form
name=formsubmitf
id
="the"
method="post"
action="XXX.asp">
<input
type=hidden
name='mypretime'
value='0'>
//这句不能少,用隐含变量传递一个时间初值
//这里是你要提交的内容
<input
type="button"
value="写好了"
name="button1"
class="4round"
onclick='formsubmit()'>
<font
class="red">(请按一次,耐心等待!)</font>
<input
type="reset"
value="重
写"
name="button2"
class="4round">
</form>
望采纳!