0

当用户实际离开页面时,我正在使用脚本淡出页面内容。

为此,我尝试使用该beforeunload事件。

当我浏览我的网站时它工作正常,但是我也发现它在应用程序启动时触发,例如Skype按钮。虽然我还没有离开过这个页面...

验证 onbeforeunload 事件以防止过早触发的最佳方法是什么?

我想我仍然应该使用我的:

$(window).one('beforeunload', function() {
  // need to make some condition, if really leaving the page - execute
  $('html.nojs').stop(true,false).css('overflow','hidden').animate({opacity:0},2000);
});

但我需要使用一些条件......只是想不出任何......

编辑:

删除了该网站的链接

动画确实有效,但是如果您转到任何特定产品并单击那里的 Skype 按钮,您会看到它会产生便便......

编辑2:

此问题的解决方案是检测触发前卸载事件的原因。正如我所说,通过在该调用中编写一些条件。

我们必须找到一种方法来找出事件是由外部应用程序调用触发的(例如尝试打开应用程序的Skype按钮)还是其他东西,例如......例如:(链接点击,按钮提交,脚本用于位置更改、开始搜索、后退/前进或刷新页面)。

4

1 回答 1

0

这是这个问题的公认答案

使用 window.onbeforeunload 时捕获用户响应

如果您需要知道是什么触发了 onbeforeunload 事件,您可以有一个全局变量,然后在单击 Skype 按钮时将其设置为 true。然后在 onbeforeload 事件中检查它。

于 2012-09-05T20:02:49.770 回答