2013-01-23 88 views
2

我花了一些时间搜索,但一直未能找到这个问题的答案。当用户在我的网站上执行某些操作时,会正确显示jGrowl消息。但是,如果用户刷新页面,则意外重新显示该消息。另外,当用户离开页面,然后按下浏览器的后退按钮时,jGrowl消息意外显示。如何防止页面刷新时再次显示jGrowl消息?

我已经在代码中设置了一个断点,它只在第一次遇到jGrowl消息时显示。刷新页面不会导致断点被击中。

那么如何防止这种意外的行为呢?谢谢你的时间。

我认为这是一个很多人需要解决方案的问题。

<#escape x as x?js_string> 
$(function(){ 

    $("a[name=preview]").fancybox({type:'ajax'}); 

    // We use jGrowl for the popups that appear in the corner 
    $.jGrowl.defaults.closer = false; 
    <#if confirmMessage??> 
     $("#jgrowlcontainer").jGrowl("${springMacroRequestContext.getMessage(confirmMessage)}"); 
    </#if> 

    // Delete a program 
    $('#deleteProgram').click(function(){ 
     $.fancybox.open('<p>Are you sure you want to delete this program?</p>'+ 
         '<button id="deleteProgram">DELETE</button> <button id="deleteCancel">CANCEL</button>'); 
     return false; 
    }); 
    $("body").on("click","button#deleteCancel",function(){ 
     $.fancybox.close(); 
    }); 
    $("body").on("click","button#deleteProgram",function(){ 
     $.fancybox.close(); 
     $('form').attr('action','/build/deleteProgram.html').submit(); 
     return false; 
    }); 

}); 
</#escape> 
+1

你能提供一些你的代码吗? –

+0

有问题的通知的“粘性”属性是否设置为false? – ktamlyn

+0

有粘性是假的。 – r0144

回答

0

我解决了这个问题。当页面被刷新时,我实际上可以用不同的代码方法打断点。此方法可以看到旧消息仍具有非空值,并将消息再次添加到模型中,然后前端代码再次显示。为了解决这个问题,我使用了一个标志,当执行一个应该显示消息的动作时,它会被设置。然后我使用这个标志来有条件地将消息添加到模型中。然后标志被重置。

相关问题