zoukankan      html  css  js  c++  java
  • 跳转页面存变化的值

    项目首页有一个背景音乐的播放,实现,用户点击暂停,调到其它页面,再回来,音乐还是暂停状态~

    1.本地存储。此处用的sessionStorage(关闭这个页面,存储的值就会清空)。因为localStorage是需要清楚缓存值的,这里每次用户重新进入此页面,存储的值应该为空,让音乐自动播放~所以不适合~

    2.在body中插入onbeforeunload。这个在android起作用,就是跳转页面要执行的函数~这个在ios是不起作用的~跳转页面存值,1为播放,2为暂停,null为首次进入页面,默认播放~

    <body  onbeforeunload="return Checkaudio();">
    //初始化
           var Storage=window.sessionStorage;//关闭页面清除存的值
           var audioplay=Storage.getItem('audioplay');
    
           /*alert(audioplay);*/
           //判断ios还是android终端
           var u = navigator.userAgent;
           var isAndroid = u.indexOf('Android') > -1 ||u.indexOf('Adr') > -1; //android终端
           var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
           if(isAndroid){//判断是安卓终端后执行什么操作
               if(audioplay==2){
                $('.audiojs').removeClass('playing');
                }else{
                     $('audio').attr('autoplay','autoplay');
                   //--创建页面监听,等待微信端页面加载完毕 触发音频播放
                   document.addEventListener('WeixinJSBridgeReady', function() {
                       document.getElementById('mp3Btn').play()
                   });
    
                   document.addEventListener('DOMContentLoaded', function () {
                       function audioAutoPlay() {
                           var audio = document.getElementById('mp3Btn');
                           audio.play();
                           document.addEventListener("WeixinJSBridgeReady", function () {
                               audio.play();
                           }, false);
                       }
                       audioAutoPlay();
                   });
                }
    
           }
    
     //判断离开此页面,音乐的状态~1表示播放,2表示暂停;
             function Checkaudio(){
                 if($('.audiojs').hasClass('playing')){
                     Storage.setItem('audioplay',1)
                 }else{
                     Storage.setItem('audioplay',2)
                 }
             }

    3.因为上边的事件在ios不起作用,所以应用了: window.addEventListener('pagehide', function () {});

     if(isiOS){
               if(audioplay==2){
                   $('.audiojs').removeClass('playing');
               }else{
                   $('audio').attr('autoplay','autoplay');
                   //--创建页面监听,等待微信端页面加载完毕 触发音频播放
                   document.addEventListener('WeixinJSBridgeReady', function() {
                       document.getElementById('mp3Btn').play()
                   });
    
                   document.addEventListener('DOMContentLoaded', function () {
                       function audioAutoPlay() {
                           var audio = document.getElementById('mp3Btn');
                           audio.play();
                           document.addEventListener("WeixinJSBridgeReady", function () {
                               audio.play();
                           }, false);
                       }
                       audioAutoPlay();
                   });
               }
           }
    
    
    //ios不支持window.onbeforeunload
           window.addEventListener('pagehide', function () {
               if($('.audiojs').hasClass('playing')){
                   Storage.setItem('audioplay',1)
               }else{
                   Storage.setItem('audioplay',2)
               }
           });
  • 相关阅读:
    Java初学者笔记四:按行读写文件和输入处理
    Java初学者笔记三:关于字符串和自实现数组常见操作以及异常处理
    Java初学者笔记二:关于类的常见知识点汇总
    python的类继承与派生
    Java初学者笔记一:元类、获取类型、枚举
    Tomcat远程任意代码执行漏洞及其POC(CVE-2017-12617)
    PostgreSQL远程代码执行漏洞(CVE-2018-1058)学习笔记
    python的三个函数(eval、exec、complie)和python版RMI
    关于Memcached反射型DRDoS攻击分析
    python的其他安全隐患
  • 原文地址:https://www.cnblogs.com/zxcc/p/9707286.html
Copyright © 2011-2022 走看看