Middle
Дар саҳифа як навигатор вуҷуд дорад. Лозим аст, ки вақте дар як таб тугмаи стоп пахш мешавад, навозиш дар дигар таб низ қатъ шавад. Чӣ гуна иртибот байни табҳоро амалӣ мекунӣ?
sobes.tech AI
Ҷавоб аз AI
Для организации общения между вкладками в браузере можно использовать несколько подходов:
-
LocalStorage + событие
storage- При нажатии на кнопку "стоп" в одной вкладке записываем в localStorage специальное значение, например,
localStorage.setItem('playerAction', 'stop'). - В других вкладках слушаем событие
window.addEventListener('storage', ...), и при обнаружении изменения ключаplayerActionвыполняем остановку плеера.
- При нажатии на кнопку "стоп" в одной вкладке записываем в localStorage специальное значение, например,
-
Broadcast Channel API
- Создаем канал:
const bc = new BroadcastChannel('player_channel'). - При нажатии "стоп" отправляем сообщение:
bc.postMessage('stop'). - В других вкладках слушаем
bc.onmessageи реагируем на команду.
- Создаем канал:
Broadcast Channel API более современный и удобный способ, но поддерживается не во всех браузерах (хотя в большинстве современных — да).
Пример с LocalStorage:
// В каждой вкладке
window.addEventListener('storage', (event) => {
if (event.key === 'playerAction' && event.newValue === 'stop') {
// Остановить плеер
player.stop();
}
});
// При нажатии стоп
function onStopClick() {
player.stop();
localStorage.setItem('playerAction', 'stop');
}
Таким образом, изменение в localStorage служит сигналом для других вкладок.