我想把这个对话框放在页面刷新中。我的意思是。当我刷新页面时,这必须是输出。
<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 :(得分:0)
据我所知,当你'刷新'一个页面时,所有JS对象都被销毁(那些用脚本编写的)。换句话说,脚本被重新加载。因此,当页面处于转换状态时,您无法保留脚本。
I型(经典单页应用程序) - 因此,如果您只是想重新加载应用程序的特定部分,那么使用$ .ajax()方法(如beforeSend())在数据请求或“页面刷新”期间显示您想要的任何内容(警报或最佳加载微调器/ div) 。然后你可以把它们隐藏在done()上。
Type II(使用路由器) 像Angular这样的JS框架为您提供了重新加载应用程序特定路径的选项,而无需重新加载/刷新整个应用程序 - $ route.reload()。您可以根据控制器中的操作显示/隐藏一些div /指令。
所以你必须使用某种形式的异步脚本来处理这种“PRFRPT而REFRESH”的情况。
使用$ .ajax()来模拟(伪代码) -
$.ajax({
url: "_URL_to_get_or_post_data__",
beforeSend: function( xhr ) {
$popup.show();
}
})
.done(function( data ) {
$popup.hide();
}
});
答案 1 :(得分:0)
浏览器具有安全功能,不会让页面阻止用户离开页面。离开页面意味着关闭标签/浏览器,导航到其他页面或刷新。停止用户的唯一方法是将功能分配给onbeforeunload
。像这样:
onbeforeunload = function () { return "You have unsaved data. Are you sure you want to exit?"; }
此消息是同步的,它将停止在页面上运行的所有javascript。如果用户按下确定,浏览器将离开页面(或刷新),否则它将保留在页面上。
修改强>
用法:当用户更改了某些内容并拥有未保存的数据时 - 您将一项功能分配给onbeforeunload
:
onbeforeunload = function () { return "some message"; }
保存数据后将onbeforeunload
设置为null:
onbeforeunload = null;