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)
               }
           });
  • 相关阅读:
    【 SSH 配置参考】
    【 SSH 实例】使用ssh开发的简单项目
    【 Hibernate 】Hibernate的session更新和删除失败问题
    【 SSH 整合】Spring、Struts、Hibernate基本整合
    Tower是个不错的项目管理开放平台
    随便写写,四年多了第一次在博客园上发表
    asp.net获取服务器绝对路径和相对路径
    342. 4的幂
    283. 移动零
    268. 缺失数字
  • 原文地址:https://www.cnblogs.com/zxcc/p/9707286.html
Copyright © 2011-2022 走看看