我想在window.onunload事件中弹出一条消息。
目前用户
a)航行离开 b)关闭窗口警报将会出现。
但我需要它在用户点击浏览器工具栏刷新按钮时不发出警告。
我们添加了在用户按F5或导航时不发出警报的条件,但是当用户点击浏览器刷新按钮时也不会出现警报。
任何类型的解决方法都会很好。
答案 0 :(得分: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;
此代码适用于所有主流浏览器:chrome,ff,ie9,ie8,ie7,ie6,opera 11,opera 10,safari 3,4,5。