2014-11-04 58 views
0

我想把这个对话框里面的页面刷新。我的意思是。当我刷新页面时,这必须是输出。如何把对话框里面的页面刷新?

<script> 
    $(function() { 
     $("#dialog").dialog({ 
      modal: true, 
      resizable: false, 
      buttons: { 
       "I want to Continue the Exam": function() { 
        $(this).dialog("close"); 
       }, 
       "I Refresh": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 
</script> 
+0

你的意思是你想显示这个dia当用户在浏览器中按下刷新按钮(或F5)时记录日志? – Dmitry 2014-11-04 07:56:57

+0

你的右派伙计! – 2014-11-04 08:00:31

+0

我不认为这是可能的。你唯一的选择是使用['onbeforeunload'](https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onbeforeunload) – Dmitry 2014-11-04 08:21:23

回答

0

据我知道,当你“刷新”页面,那么所有的JS对象被销毁(那些编写脚本)。换句话说脚本重新加载。所以当页面处于转换状态时,你无法坚持你的脚本。因此,如果您只是想重新加载应用程序的特定部分,然后使用$ before()方法之类的$ .ajax()方法来显示任何内容(警报或最佳加载微调器/ div)在数据请求或'页面刷新'期间需要。然后你可以隐藏它们完成()。使用路由器的类型II 像Angular这样的JS框架为您提供了重新加载应用程序的特定路线而不需要重新加载/刷新整个应用程序的选项 - $ route.reload()。您可以根据控制器中的操作显示/隐藏某些div /指令。

所以你必须使用某种形式的异步脚本来处理这个“PROMPT while REFRESH”的情况。

使用$。阿贾克斯()来模拟(伪代码) -

$.ajax({ 
    url: "_URL_to_get_or_post_data__", 
    beforeSend: function(xhr) { 
    $popup.show(); 
    } 
}) 
    .done(function(data) { 
     $popup.hide(); 
    } 
}); 
+0

谢谢你的答案先生。 。我没有得到你所说的。但所有人都知道是不可能的。 – 2014-11-04 08:32:11

+0

是的,在1行中是不可能的。但是你可以使用Jquery Ajax来模拟你是否有这种需求。 – Subhranshu 2014-11-04 09:07:03

+0

你的意思是。如果我使用jQuery和Ajax我可以做我想要的东西? 可以在这里评论代码先生.. – 2014-11-04 09:19:51

0

浏览器有安全功能,不会让一个页面防止用户离开页面。通过离开页面意味着关闭标签页/浏览器,导航到不同的页面或刷新。停止用户的唯一方法是将函数分配给onbeforeunload。像这样:

onbeforeunload = function() { return "You have unsaved data. Are you sure you want to exit?"; } 

此消息是同步的,它将停止页面上运行的所有javascript。如果用户按下ok,浏览器将离开页面(或刷新),否则它将保留在页面上。

编辑

用法:当用户已经改变了一些东西,有未保存的数据 - 你分配一个功能onbeforeunload

onbeforeunload = function() { return "some message"; } 

的数据被保存后设置onbeforeunload为null:

onbeforeunload = null; 
+0

我该如何应用此代码先生? 当我在我的netbeans上使用它时,它将它标记为已读。 – 2014-11-04 09:18:30