2011-06-17 44 views
0

我想在window.onunload事件中弹出消息。浏览器关闭时window.unload上的javascript警报,但浏览器刷新时不应该提示

目前当用户

一)导航离开
B)关闭窗口
三)按F5或
d)压在浏览器工具栏

会出现警报刷新按钮。

但我需要它不警告当用户点击浏览器工具栏刷新按钮。

我们添加了条件,当用户按下F5或导航时不提醒,但当用户单击浏览器刷新按钮时也不会显示提醒。

任何类型的解决方法都不错。

+0

据我所知,这是不可能的。虽然如果你分享你需要它的原因,可以用更好的解决方案来实现。 – mihsathe 2011-06-17 12:39:42

回答

0

我可以提供一种方法来知道用户是否点击浏览器按钮(回退,转发,关闭浏览器等)。我找不到找到哪个按钮被点击的方法,但我希望它能帮助你。

要知道用户是否点击浏览器按钮,请按照下列步骤操作: 1.注册window.beforeunload事件。 2.在处理程序中,检查event.clientY。 3.如果event.clientY不是defiend或event.clientY < 0,那么你知道用户点击了一个浏览器按钮。

例如:
(你可能将不得不修改代码,它适合于您的问题)

 
function beforeUnloadHandler(eventArg) 
{ 
    var _e = window.event || eventArg; 

    // browser button click 
    if (isNaN(_e.clientY) || _e.clientY < 0) 
    { 
     // unload process will continue 
     // and unload event will be fired 
     return; 
    } 

    // a confirmation with 'test alert' text will appear 
    // if the user clicks 'Cancel', the unload process will stop 
    // and unload event won't be fired. 
    return "test alert"; 
} 
window.onbeforeunload = beforeUnloadHandler; 

这个代码将在所有主要的浏览器中工作:铬,FF,IE9,IE8,IE7 ,6,歌剧11,歌剧10,野生动物3,4,5。

相关问题