当用户实际离开页面时,我正在使用脚本淡出页面内容。
为此,我尝试使用该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按钮)还是其他东西,例如......例如:(链接点击,按钮提交,脚本用于位置更改、开始搜索、后退/前进或刷新页面)。