2016-05-11 13 views
0

HTMLページのオーディオ要素の動作を処理する必要があります。音声は、ユーザーがページに到着すると開始します。私は、同じセッション中に再び彼がページに達すると、もう一度演奏したくないです。私はそのコードを試みたが、うまくいきません。あなたはそれについていくつかの示唆を持っていますか?どうもありがとうございましたHtml 5オーディオローカルストレージ

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<audio controls autoplay class="hidden-xs" style=" position:fixed; right:0; bottom:0; z-index:99999999999"> 
    <source src="music_bbms.mp3" type="audio/mpeg"> 
    Your browser does not support the audio element. 
</audio> 
<script> 
    $(document).ready(function() { 
     if (!localStorage.getItem('played') { 
      $('.music').attr('autoplay', false); 
      localStorage.setItem('played', true); 
     } 
    }); 
</script> 
+0

'オーディオを開始するユーザーは、これを実行しないでくださいpage'に到着したとき。もはや1996年ではない。 –

+0

セッションが存在する場合、あなたはプレーヤーを 'remove()'することができます –

+0

あなたの 'if'条件に') 'がありません。 –

答えて

1

ここで私が間違っているかもしれないと思ういくつかのものです:

  1. があなたのaudio要素のいずれかのクラス.musicありませんので、あなたがそのクラスセレクタを使用して、その属性を変更する方法は、 。私はidをオーディオ要素に追加し、それを選択するためにそのidを使用しました。
  2. ifの条件に閉じ括弧がないため、修正しました。
  3. 私は、itemStorageに項目値を文字列として格納すると仮定しています。 sessionStorageが使用されました。これは、現在のセッションのみを追跡すると述べたからです。
 <audio id="music" controls class="hidden-xs" style=" position:fixed; right:0; bottom:0; z-index:99999999999"> 
     <source src="music_bbms.mp3" type="audio/mpeg"> 
     Your browser does not support the audio element. 
    </audio> 
    <script> 
     $(document).ready(function() { 
      if (sessionStorage.getItem('played') != "true") { 
       $('#music').get(0).play(); 
       sessionStorage.setItem('played', "true"); 
      } 
     }); 
    </script> 
+0

私はタグにIDを忘れて、助けてくれてありがとう –

+0

@beer_baronそう、それは今働く? –