javascript - 如何做到網(wǎng)頁音樂播放器在打開兩個標簽頁時第二個標簽頁不播放?
Jul 06, 2016 pm 01:51 PM
自己在自己的博客footer上添加了一個網(wǎng)頁播放器。
由于自己的博客已經(jīng)AJAX,所以在切換頁面的時候不會導致音樂中斷。
不過今天發(fā)現(xiàn)了一個新問題,就是說在已經(jīng)打開了我博客(也就是說音樂已經(jīng)開始播放了)的情況下,再打開一個新的標簽頁,加載完我的博客以后,音樂播放器還是會播放,也就是說,兩個標簽頁都在播放我博客上的音樂,聽起來會很亂,需要手動去暫停第二個標簽頁的音樂才行。
我想做到能夠在打開第二個標簽頁時不自動播放播放器的音樂,就像網(wǎng)易云音樂那樣實現(xiàn)??墒窍氩坏皆撚檬裁礃拥姆椒ā@_>ˋ
初學者表示并不會qwq求大觸解答
回復內容:
自己在自己的博客footer上添加了一個網(wǎng)頁播放器。
由于自己的博客已經(jīng)AJAX,所以在切換頁面的時候不會導致音樂中斷。
不過今天發(fā)現(xiàn)了一個新問題,就是說在已經(jīng)打開了我博客(也就是說音樂已經(jīng)開始播放了)的情況下,再打開一個新的標簽頁,加載完我的博客以后,音樂播放器還是會播放,也就是說,兩個標簽頁都在播放我博客上的音樂,聽起來會很亂,需要手動去暫停第二個標簽頁的音樂才行。
我想做到能夠在打開第二個標簽頁時不自動播放播放器的音樂,就像網(wǎng)易云音樂那樣實現(xiàn)??墒窍氩坏皆撚檬裁礃拥姆椒ā@_>ˋ
初學者表示并不會qwq求大觸解答
原理是用的localstorage。
但這僅僅不夠,還有最重要的一點。我如何知道另外一個頁面打開之后,這個頁面立即暫停音樂哪?
我們來試驗下:
模擬正常流程,先打開頁面A.html
。假定這在播放音樂。。。。
<code> <meta charset="UTF-8"> <title>page A</title> <script> window.onload=function () { window.addEventListener('storage',function () { console.log(arguments); },false); } </script> 正在播放音樂。。。 </code>
然后,我們在打開一個新的頁面,B.html
<code> <meta charset="UTF-8"> <title>page B</title> <script> window.onload=function () { localStorage.setItem('open','b.html'); } </script> 現(xiàn)在是我這個頁面在播放音樂。。。 </code>
這個時候你就會發(fā)現(xiàn),頁面A.html
立即會打印出來一個對象
。沒錯就像下圖這樣。
這樣。根據(jù)得到的key
、value
和新頁面的url
。A.html
就可以立馬知道自己要干什么了。
這個問題的核心在于如何及時的知道打開新頁面了?在新頁面的打開的同時如何及時的關閉本頁面的音樂?難點就在這個“及時性”上。
在sessionStorage里作個標記就行
利用cookie或者Html5的 localStorage做個本地標記
在用戶每次打開你的博客時,播放音樂時,瀏覽器的localStorage
或者cookies
中存儲對當前播放器的狀態(tài)。
當用戶在同一個瀏覽器中打開你的博客時,可以通過localStorage
或者cookies
中的狀態(tài)進行判斷是否需要再次播放。
直接給window加個事件就好了,$(window).on('blur',function(){
console.log('停止音樂);
})
$(window).on('focus',function(){
console.log('開始音樂');
})

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

std::chrono在C 中用於處理時間,包括獲取當前時間、測量執(zhí)行時間、操作時間點與持續(xù)時間及格式化解析時間。 1.獲取當前時間使用std::chrono::system_clock::now(),可轉換為可讀字符串但係統(tǒng)時鐘可能不單調;2.測量執(zhí)行時間應使用std::chrono::steady_clock以確保單調性,並通過duration_cast轉換為毫秒、秒等單位;3.時間點(time_point)和持續(xù)時間(duration)可相互操作,但需注意單位兼容性和時鐘紀元(epoch)

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。 $ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

使用PHP預處理語句執(zhí)行帶有IN子句的查詢時,1.需根據(jù)數(shù)組長度動態(tài)生成佔位符;2.使用PDO時可直接傳入數(shù)組,用array_values確保索引連續(xù);3.使用mysqli時需構造類型字符串並綁定參數(shù),注意展開數(shù)組的方式及版本兼容性;4.避免拼接SQL、處理空數(shù)組和確保數(shù)據(jù)類型匹配。具體做法是:先用implode與array_fill生成佔位符,再依擴展特性綁定參數(shù),從而安全執(zhí)行IN查詢。

安裝PHP在Windows上的關鍵步驟包括:1.下載合適的PHP版本並解壓,推薦使用ThreadSafe版本配合Apache或NonThreadSafe版本配合Nginx;2.配置php.ini文件,將php.ini-development或php.ini-production重命名為php.ini;3.將PHP路徑添加到系統(tǒng)環(huán)境變量Path中以便命令行使用;4.測試PHP是否安裝成功,通過命令行執(zhí)行php-v和運行內置服務器測試解析能力;5.若使用Apache,需在httpd.conf中配置P

要使用CSS創(chuàng)建響應式圖片,主要可通過以下方法實現(xiàn):1.使用max-width:100%和height:auto讓圖片在保持比例的同時自適應容器寬度;2.結合HTML的srcset和sizes屬性智能加載適配不同屏幕的圖片源;3.利用object-fit和object-position控製圖片裁剪與焦點展示。這些方法共同確保圖片在不同設備上清晰、美觀地呈現(xiàn)。

INCS,propertyInherItanceFectShowStyleSarepassed fromParentElementStochildren.SomePropertiesLikeColorAndFontFontFont-FamilyIinHeritbyDefault,ApplyingToAllNesteDeLementOnlessOverRidend.NonHeritedPropertiperpertiessuchasuchasuchasborder,margin,margin,and paddingdingmustblitymustliceexexlexpliotlictymustlicyplity。

PHP的基礎語法包括四個關鍵點:1.PHP標籤必須使用結束,推薦使用完整標籤;2.輸出內容常用echo和print,其中echo支持多參數(shù)且效率更高;3.註釋方式有//、#和//,用於提升代碼可讀性;4.每條語句必須以分號結尾,空格和換行不影響執(zhí)行但影響可讀性。掌握這些基本規(guī)則有助於寫出清晰穩(wěn)定的PHP代碼。
