当用户试图关闭页面时(单击浏览器窗口上的X按钮或离开页面),我需要发送一条消息,如“确定吗?”并执行一些操作。
我正在使用离子3,这是我的配置
cli包:(/home/ubuntu/workspace/mHS/node_modules)
@ionic/cli-utils : 1.12.0
ionic (Ionic CLI) : 3.12.0
全球套餐:
cordova (Cordova CLI) : 7.0.1
本地套餐:
@ionic/app-scripts : 3.0.0
Cordova Platforms : android 6.3.0 browser 4.1.0 ios 4.4.0
Ionic Framework : ionic-angular 3.7.1
系统:
Node : v6.11.2
npm : 5.3.0
OS : Linux 4.9
杂项:
backend : legacy
我尝试了不同的方法,但没有成功:
1-离子生命周期钩
import { Component, ViewChild } from '@angular/core';
import { NavController, Events, LoadingController, Platform } from 'ionic-angular';
@Component({
selector: 'page-signup',
templateUrl: 'signup.html'
})
export class SignupPage {
....
ionViewWillUnload() {
console.log("I'm about to unload");
}
}
2-主机侦听器
import { Component, HostListener, ViewChild } from '@angular/core';
import { NavController, Events, LoadingController, Platform } from 'ionic-angular';
...
@Component({
selector: 'page-signup',
templateUrl: 'signup.html'})
export class SignupPage {
@HostListener('window:beforeunload', ['$event'])
handler(event: Event) {
console.log('event logged')
}
...
}
3-超文本标记语言
<ion-header>
<ion-navbar>
<ion-title>{{pageTitle}}</ion-title>
</ion-navbar>
</ion-header>
<ion-content onbeforeunload="myScript()">
....
</ion-content>
我错过了什么?
解决方案是第2个-主机侦听器;我忘记返回布尔值。这种方式非常有效。
export class SignupPage {
@HostListener('window:beforeunload', ['$event'])
onbeforeunload(event) {
return this.signupCompleted;
}
}
signupCompleted = false;
...
}
问题内容: 我尝试使用以下代码在关闭浏览器窗口时收到警报: 它可以工作,但是如果页面包含一个超链接,则单击该超链接会引发相同的警报。仅在关闭浏览器窗口时才需要显示警报,而在单击超链接时则不需要。 问题答案: 保持您的代码不变,并使用jQuery处理链接:
问题内容: 我需要停止浏览器存储用户名和密码值,因为我正在处理包含更多安全数据的Web应用程序。客户要求我这样做。 我尝试了HTML表单和密码字段中的属性。但它无法在最新的浏览器(例如Chrome 55,Firefox 38+,IE 11等)中运行。 最好的解决方案是什么? 问题答案: 感谢您给我回复。我点击了以下链接 禁用浏览器的“保存密码”功能 我通过仅在输入中添加&属性来解决此问题,如下所示
问题内容: 好像我使用加载动态内容,结果缓存在浏览器中。 在QueryString中添加一些随机字符串似乎可以解决此问题(我使用),但这听起来像是一种hack。 还有其他方法可以做到这一点吗?或者,如果唯一字符串是实现此目标的唯一方法,则除之外还有其他建议吗? 问题答案: 我使用,这将避免冲突,除非您在同一毫秒内发生多个请求: 编辑: 这个答案已经好几年了。它仍然有效(因此我没有删除它),但是 现
问题内容: 所以我正在做这个小项目,但是在捕捉方面有些麻烦。不能正常工作的一件事是,浏览器一直在缓存包含保存数据的json文件,当我在其他地方更新json时,浏览器会返回到已缓存的json文件的旧版本并读取该旧版本。不幸的是我不想要那个。我根本不希望浏览器完全缓存文件,以便每次加载页面时,它将向服务器请求json文件并根据该文件而不是已缓存的任何文件进行操作。但是,我希望能够缓存页面上的所有其他内
通常情况下,您使用selenium来自动化测试用例,在测试用例运行完毕后,浏览器关闭。 然而,我尝试使用selenium webdriver编写特定任务的脚本,例如登录到特定页面,但浏览器在登录后应保持打开状态。 我开发了门户,这样,如果我早上开始工作,我就不必登录所有的后端,我只需要登录一次我的门户,从那里我就可以触发我需要的一切。 我这样做是为了登录到typo3后端(片段): 您可以看到,我在
问题内容: 如何防止使用JavaScript浏览网页? 问题答案: 使用可以显示消息,但不会中断导航(因为为时已晚)。但是,使用会中断导航: 注意:返回空字符串,因为较新的浏览器提供了诸如“任何未保存的更改将丢失的信息”之类的消息,这些消息不能被覆盖。 在较旧的浏览器中,您可以指定要在提示中显示的消息: