亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何做到網頁音樂播放器在打開兩個標簽頁時第二個標簽頁不播放?

如何做到網頁音樂播放器在打開兩個標簽頁時第二個標簽頁不播放?

慕桂英546537 2018-08-14 10:10:48
自己在自己的博客footer上添加了一個網頁播放器。由于自己的博客已經AJAX,所以在切換頁面的時候不會導致音樂中斷。不過今天發現了一個新問題,就是說在已經打開了我博客(也就是說音樂已經開始播放了)的情況下,再打開一個新的標簽頁,加載完我的博客以后,音樂播放器還是會播放,也就是說,兩個標簽頁都在播放我博客上的音樂,聽起來會很亂,需要手動去暫停第二個標簽頁的音樂才行。我想做到能夠在打開第二個標簽頁時不自動播放播放器的音樂,就像網易云音樂那樣實現??墒窍氩坏皆撚檬裁礃拥姆椒ā@_>ˋ初學者表示并不會qwq求大觸解答
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

原理是用的localstorage。
但這僅僅不夠,還有最重要的一點。我如何知道另外一個頁面打開之后,這個頁面立即暫停音樂哪?
我們來試驗下:
模擬正常流程,先打開頁面A.html。假定這在播放音樂。。。。

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>page A</title>
    <script>
        window.onload=function () {            window.addEventListener('storage',function () {                console.log(arguments);
            },false);
        }    </script></head><body>正在播放音樂。。。</body></html>

然后,我們在打開一個新的頁面,B.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>page B</title>
    <script>
        window.onload=function () {
            localStorage.setItem('open','b.html');
        }    </script></head><body>現在是我這個頁面在播放音樂。。。</body></html>

這個時候你就會發現,頁面A.html 立即會打印出來一個對象。沒錯就像下圖這樣。

https://img1.sycdn.imooc.com//5ba2fe1b0001300713990825.jpg

這樣。根據得到的key、value和新頁面的urlA.html就可以立馬知道自己要干什么了。

這個問題的核心在于如何及時的知道打開新頁面了?在新頁面的打開的同時如何及時的關閉本頁面的音樂?難點就在這個“及時性”上。


查看完整回答
反對 回復 2018-09-20
  • 1 回答
  • 0 關注
  • 1101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號