如何在Angular项目里监听页面关闭、跳转事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Angular项目里监听页面关闭、跳转事件?相关的知识,希望对你有一定的参考价值。

参考技术A

在用户操作网页时,我们有时需要监听用户关闭或者跳转网页的行为,比如像在线编辑工具,如果用户没有提交、保存就关闭页面,那一切更新的数据都会丢失,如何防止这一现象发生?本文提供了一种解决办法,但不是很友好,不得已而为之。

关于页面/浏览器关闭事件, onbeforeunload 依旧可行,不过如果使用者禁止了这一事件,那就改换别的办法吧。

关于页面跳转,也就是网址发生变化,如果要监听路由变化,有两种情况:

1.再写一个 onbeforeunload 事件,事件中什么都不放置,可以让用户保存之后触发此事件;

2.将 $locationChangeStart 或者 $stateChangeStart 事件放在一个全局变量中,比如vm.stopListener,之后在用户触发的事件中调用一次vm.stopListener()即可。

在android中怎样给整个页面设置监听事件

参考技术A 您可以类似这样,先实例化子页面中的Button控件,然后将实例化后的控件绑定监听事件View view=LayoutInflater.from(context).inflate(R.layout.abc_action_bar_view_list_nav_layout,null); Button button= (Button) view.findViewById(R.id.action_bar); button.setOnClickListener(new View.OnClickListener() @Override public void onClick(View view) //写上点击后要执行的事件 );当然了,您要在不同页面实现不同的功能的话,您可以将以上代码写在viewPager.setOnPageChangeListener的滚动回调方法当中进行页面滚动的判断,从而执行不同的点击事件。希望能帮到您,如果还有什么问题,欢迎您继续追问。谢谢。追问

请问其中的上下文context怎么解释

参考技术B 您可以类似这样,先实例化子页面中的Button控件,然后将实例化后的控件绑定监听事件
View view=LayoutInflater.from(context).inflate(R.layout.abc_action_bar_view_list_nav_layout,null);
Button button= (Button) view.findViewById(R.id.action_bar);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
//写上点击后要执行的事件

);
当然了,您要在不同页面实现不同的功能的话,您可以将以上代码写在viewPager.setOnPageChangeListener的滚动回调方法当中进行页面滚动的判断,从而执行不同的点击事件。希望能帮到您,如果还有什么问题,欢迎您继续追问。谢谢。本回答被提问者采纳
参考技术C 给跟view增加点击事件

以上是关于如何在Angular项目里监听页面关闭、跳转事件?的主要内容,如果未能解决你的问题,请参考以下文章

js 怎么监听到页面关闭或页面跳转事件

js 怎么监听到页面关闭或页面跳转事件

js 怎么监听到页面关闭或页面跳转事件

java程序中如何实现单击页面a中的按钮跳转到页面b

监听浏览器关闭事件

【VUE】监听页面返回或移动端物理返回按钮键