如果您在两个浏览器标签中打开了一个Soundcloud页面,或者带有Soundcloud iFrame的页面,并且其中一个标签正在播放音乐,在另一个标签中按下播放按钮将会暂停第一个标签的播放。这是如何实现的呢?
它使用本地存储来实现这一点。它在每个标签页中存储已播放或暂停的所有歌曲的JSON数据。一旦您播放另一首歌曲,所有其他歌曲的播放状态都会在本地存储中设置为暂停。很可能触发了一个localStorage事件,检查哪些歌曲需要被暂停并将它们暂停。
localStorage
能在多个标签页之间立即更新并广播事件?我想这很有道理,只是以前从未考虑过这种情况。很棒。 - Alex WaynesetInterval
或类似的东西结合使用,在这种情况下它可以作为旧版浏览器的备用方案。 - danronmoon