Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当用户离开页面时,在angularjs中显示自定义确认框_Javascript_Angularjs_Angularjs Material - Fatal编程技术网

Javascript 当用户离开页面时,在angularjs中显示自定义确认框

Javascript 当用户离开页面时,在angularjs中显示自定义确认框,javascript,angularjs,angularjs-material,Javascript,Angularjs,Angularjs Material,我的要求是当用户离开页面而不保存表单数据时,显示一个定制的确认框 我使用了窗口。onbeforeunload事件显示与google chrome相关的预定义确认框。当用户更改任何表单并尝试重新加载、关闭选项卡或更改路由时,我希望显示$mdDialog。确认并要求用户离开页面或停留在同一页面上。如何制作一个?出于安全原因,这无法完成。您可以在上的MDN页面中找到更多详细信息 过去,您可以返回一个显示给用户的自定义字符串,但现在即使这样也被忽略了。您所能做的最好是指示页面显示您已有的标准对话框。(在

我的要求是当用户离开页面而不保存表单数据时,显示一个定制的确认框


我使用了
窗口。onbeforeunload
事件显示与google chrome相关的预定义确认框。当用户更改任何表单并尝试重新加载、关闭选项卡或更改路由时,我希望显示$mdDialog。确认并要求用户离开页面或停留在同一页面上。如何制作一个?

出于安全原因,这无法完成。您可以在上的MDN页面中找到更多详细信息

过去,您可以返回一个显示给用户的自定义字符串,但现在即使这样也被忽略了。您所能做的最好是指示页面显示您已有的标准对话框。(在某些浏览器和场景中,甚至可以忽略该指令。)


另一种方法是在页面中包含一个用于离开表单的按钮。尽管这仍然不能阻止用户直接离开页面,但如果页面足够可见,在许多情况下,用户更可能单击该页面而不是直接导航。它还作为一种被动提醒,提醒您表单需要显式保存或取消(当然,这取决于您的具体细节)。

我认为这是不可能的,这是出于设计。您可以发出的唯一通知是使用浏览器自己的对话框。这样网页就不能无限期地劫持用户。