博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]html5监听任何App自带返回键javascript事件
阅读量:5141 次
发布时间:2019-06-13

本文共 1364 字,大约阅读时间需要 4 分钟。

1、前言

如今h5新特性、新标签、新规范等有很多,而且正在不断完善中,各大浏览器商对它们的支持,也是相当给力。作为前端程序员,我觉得我们还是有必要积极关注并勇敢地加以实践。接下来我将和各位分享一个特别好用的h5新特性(目前也不是特别新),轻松监听任何App自带的返回键,包括安卓机里的物理返回键,从而实现项目开发中进一步的需求。

2、起因

大概半年前接到pm一需求,用纯h5实现多audio的播放、暂停、续播,页面放至驾考宝典App中,与客户端没有任何的交互,所以与客户端相关的js不需要引用。看上去这需求挺简单的嘛,虽然之前也没做过类似的需求。不管三七二十一,撸起袖子就是干。开始了学习之旅。

3、我这里着重介绍下我具体是怎么监听任何App自带的返回键,以及安卓机里的物理返回键。

那为什么我要去监听呢,这里我有必要强调强调再强调。苹果手机不管是微信、QQ、App,还是浏览器里,涉及到audio、video,返回上一页系统会自动暂停当前的播放的,但不是所有安卓机都可以。所以我们自己必须自定义监听。很多朋友可能第一想法就是百度,然后出来的答案无非是这样

pushHistory();window.addEventListener("popstate", function(e) {    alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能}, false);function pushHistory() {    var state = {        title: "title",        url: "#"    };    window.history.pushState(state, "title", "#");}

是不是很眼熟?然而关键需求不能完美实现,要这段代码有何用,当时我也是绞尽脑汁。直到经过大神好友指导,复制了这段代码

var hiddenProperty = 'hidden' in document ? 'hidden' :       'webkitHidden' in document ? 'webkitHidden' :       'mozHidden' in document ? 'mozHidden' :       null;var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');var onVisibilityChange = function(){    if (!document[hiddenProperty]) {           console.log('页面非激活');    }else{        console.log('页面激活')    }}document.addEventListener(visibilityChangeEvent, onVisibilityChange);

所有问题迎刃而解。

这段代码的原理就是通过判断用户浏览的是否为当前页,从而进行相关操作。

这是 MDN相关链接:

转载于:https://www.cnblogs.com/syncmr/p/10760626.html

你可能感兴趣的文章
Linux 永久挂载镜像文件和制作yum源
查看>>
Lock和synchronized比较详解(转)
查看>>
eclipse代码编辑器中按alt+/提示No Default Proposals 的解决方法
查看>>
相似算法-编辑距离
查看>>
hql date比较
查看>>
前端如何判断音视频是否播放完毕
查看>>
[转]vi 常用命令行
查看>>
php服务器端检查手机访问还是pc访问(并跳到不同页面)
查看>>
WPF快速入门系列(3)——深入解析WPF事件机制
查看>>
【消息队列】 RabbitMQ教程汇总
查看>>
eclipse远程连接hive
查看>>
2011-4-12学习总结
查看>>
VS单元测试"未能加载文件或程序集,或它的某一个依赖项"
查看>>
20145322 20145310 20145318信息安全系统设计基础实验报告
查看>>
Netty——高级发送和接收数据handler处理器
查看>>
如何查看JSP和Servlet版本
查看>>
【Finish】Python Day 9
查看>>
css3实现漂亮的按钮链接
查看>>
最大矩形面积
查看>>
[python基础] python 2与python 3的区别,一个关于对象的未知的坑
查看>>