注意:超时关闭时不执行回调
Posted
技术标签:
【中文标题】注意:超时关闭时不执行回调【英文标题】:Noty: Do not execute callback when closed by timeout 【发布时间】:2018-04-30 09:18:00 【问题描述】:我正在使用Noty 向用户显示消息。单击通知时,用户将被重定向到显示有关通知的更多详细信息的页面。为此,我使用了onClose()
回调。
我还想在短时间内隐藏通知。我正在为此使用timeout
属性。
问题在于,即使通知因超时而关闭,onClose()
回调也会被执行。但是由于没有onClick()
或类似的回调可用,我相信使用当前的方法是我能做的最好的。
有人知道解决此问题的方法或某种解决方法吗?任何帮助表示赞赏!
【问题讨论】:
【参考方案1】:在Noty v2 中看起来他们有一个可以使用的新onCloseClick
回调。似乎只有当用户单击通知关闭它时才会调用它。在超时时它仍然会关闭通知而不触发回调。
这是一个例子:
noty(
text: 'Alert: I am an error!',
timeout: 3000,
progressBar: true,
callback:
onCloseClick: function()
console.log("you closed with a click");
// redirect user here
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/noty@2.4.1/js/noty/packaged/jquery.noty.packaged.min.js"></script>
【讨论】:
以上是关于注意:超时关闭时不执行回调的主要内容,如果未能解决你的问题,请参考以下文章
Bug解决了axios.get('...').then(),回调不执行的Bug
如果在超时回调中修改了“window.location.href”,则 shouldOverrideUrlLoading(...) 不会执行