网页窗口关闭前进行提示(适用于IE和FF, 标题栏的X关闭按钮)
2011-06-01 15:04
344 查看
function getEvent() //同时兼容ie和ff的写法, 这个方法是网上copy的
{
if(document.all) return window.event;
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0)
{
if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
{
return arg0;
}
}
func=func.caller;
}
return null;
}
function ConfirmClose() {
if(window.event)
window.event.returnValue = "在关闭窗口前确认您是否已经保存了信息!";
else
getEvent().preventDefault();//for firefox
}
function on_page_loaded() //自己定义的body的onload事件
{
try{
if(!window.onbeforeunload ) //为了不覆盖原来的onbeforeunload方法,先判断
window.onbeforeunload = ConfirmClose; //todo 增加了窗口关闭前的提示
}catch(e){}
}
这个主要是在页面定义一个在关闭或更新页面文档文档前的事件(onbeforeunload )
兼容IE和FF,
重点:
FF:e.preventDefault()方法作用跟上面一样
说白了,利用这两个可以在事件发生前弹出提示框阻止事件和让事件继续进行,如onclick, onkeydown, onfocus, close 等事件
对于IE还可以用
function on_page_loaded(){
try{
if(!document.body.onbeforeunload )
document.body.onbeforeunload =function(){ConfirmClose();}; //todo 增加了窗口关闭前的提示
}catch(e){}
}
这个主要是document.body 和 window的区别, 上面这个方法在FF是不起作用的, 虽然定义了body的onbeforeunload 事件,但是没有效果。
但你直接<body onbeforeunload = ConfirmClose();> 在 IE 和 FF 是可以的(很奇怪,希望有人能解释下)
PS. 不要把自定义的属性加到document对象上,这会使得每次读取该属性时进行额外的重算。推荐加在window对象上
查了一些资料发现原来还可以更简单的
function ConfirmClose() {
return "在关闭窗口前确认您是否已经保存了信息!";
}
function on_page_loaded()
{
try{
if(!window.onbeforeunload)
window.onbeforeunload = function(){return ConfirmClose();}; //todo 增加了窗口关闭前的提示
}catch(e){}
}
这个够简单了吧
-------------------------------------------------
以上在IE6和firefox 2.0测试通过
{
if(document.all) return window.event;
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0)
{
if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
{
return arg0;
}
}
func=func.caller;
}
return null;
}
function ConfirmClose() {
if(window.event)
window.event.returnValue = "在关闭窗口前确认您是否已经保存了信息!";
else
getEvent().preventDefault();//for firefox
}
function on_page_loaded() //自己定义的body的onload事件
{
try{
if(!window.onbeforeunload ) //为了不覆盖原来的onbeforeunload方法,先判断
window.onbeforeunload = ConfirmClose; //todo 增加了窗口关闭前的提示
}catch(e){}
}
这个主要是在页面定义一个在关闭或更新页面文档文档前的事件(onbeforeunload )
兼容IE和FF,
重点:
IE:event.returnValue | 如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,可以取消发生事件的源元素的默认动作。 |
说白了,利用这两个可以在事件发生前弹出提示框阻止事件和让事件继续进行,如onclick, onkeydown, onfocus, close 等事件
对于IE还可以用
function on_page_loaded(){
try{
if(!document.body.onbeforeunload )
document.body.onbeforeunload =function(){ConfirmClose();}; //todo 增加了窗口关闭前的提示
}catch(e){}
}
这个主要是document.body 和 window的区别, 上面这个方法在FF是不起作用的, 虽然定义了body的onbeforeunload 事件,但是没有效果。
但你直接<body onbeforeunload = ConfirmClose();> 在 IE 和 FF 是可以的(很奇怪,希望有人能解释下)
PS. 不要把自定义的属性加到document对象上,这会使得每次读取该属性时进行额外的重算。推荐加在window对象上
查了一些资料发现原来还可以更简单的
function ConfirmClose() {
return "在关闭窗口前确认您是否已经保存了信息!";
}
function on_page_loaded()
{
try{
if(!window.onbeforeunload)
window.onbeforeunload = function(){return ConfirmClose();}; //todo 增加了窗口关闭前的提示
}catch(e){}
}
这个够简单了吧
-------------------------------------------------
以上在IE6和firefox 2.0测试通过
相关文章推荐
- 网页窗口关闭前进行提示(适用于IE和FF, 标题栏的X关闭按钮)
- 无提示关闭IE窗口,目前适用于IE所有版本(目前最新为IE7.0)
- 阻止用户关闭网页,提示保存的解决方案IE/FF/OP通用(未经测试)
- 阻止用户关闭网页,提示保存的解决方案IE/FF/OP通用(未经测试)
- javascript无提示关闭窗口,兼容IE,Firefox
- 带关闭按钮的页面漂浮的代码(IE/FF)
- js无提示关闭ie窗口
- IE和FF下javascript获取网页及窗口大小的区别
- 实现网页自动满屏(适用于IE FF)
- 不提示直接关闭网页窗口的JS示例代码
- 【转】javascript IE下的关闭ie窗口出现提示关闭问题
- 在网页中使用javascript打开没有最大化、最小化和关闭按钮的窗口
- JS关闭窗口,IE不弹出提示
- 无提示关闭IE窗口
- 让window.close不提示:您查看的网页正在试图关闭窗口。是否关闭此窗口?
- JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome)
- IE,Firefox下无提示关闭窗口
- IE JS无提示关闭窗口不提示的方法
- IE JS关闭窗口不提示的方法
- 如何点击IE窗口上方的“X关闭符号”,弹出提示窗口呢?