亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript - js 有什么優雅的辦法實現在同時打開的兩個標簽頁間相互通信?

瀏覽:137日期:2022-12-15 18:54:50

問題描述

舉了例子:

我同時打開了a和b兩個頁面,我聚焦在a上,并進行一些操作,讓a頁面上的js處理我的操作并將數據發送到旁邊的b頁面。此時b頁面就能在不刷新、不經過服務器的情況下接收到這些數據并作出反饋。類似于在百度音樂pc網頁版聽歌的時候,如果已經打開了百度音樂盒頁面和列表頁,我在列表頁點一首歌曲的“播放”按鈕時,旁邊的音樂盒頁面就可以自動開始播放那首音樂,而不需要打開新頁面。

總覺得用cookie什么的干這事有些雞肋。

問題解答

回答1:

這是一道阿里的面試題,方法很多。利用localstorage的storage事件可以通訊;shadredworker也可以解決;還有就是用websocket。

回答2:

如果你能控制ab的頁面甚至決定URL: sharedworker / localstorage / sessionstorage 都可以用

回答3:

<ul><li><a href='http://www.aoyou183.cn/song-1' target='player'>song-1</a></li><li><a href='http://www.aoyou183.cn/song-2' target='player'>song-2</a></li><li><a href='http://www.aoyou183.cn/song-3' target='player'>song-3</a></li></ul>

屬性target='framename'表示在指定的框架(頁面)中打開鏈接.可以實現:點擊添加商品到購物車時,如果購物車頁面已經打開,則只刷新該頁面,而不是打開新的購物車頁面.點擊播放歌曲時,如果播放器頁面已經打開,則只刷新該頁面,而不是打開新的播放器頁面.

回答4:

提示下思路:瀏覽器同時打開兩個同域名的網頁,他們的localStorage是共享的,不僅如此,他們之間的localStorage值改變也是可以監聽的。同域的a和b兩個頁面,a頁面發生localStorage.set(’abc’, 123),b頁面可以通過如下方式監聽變化:

window.addEventListener('storage', function(e){ console.log(’key:’, e.key); // 'abc' console.log(’oldValue:’, e.oldValue); // null console.log(’newValue:’, e.newValue); // 123});

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 国产精品国产午夜免费福利看 | 亚洲精美视频 | 精品国产成人三级在线观看 | 美国毛片免费一级 | 三级毛片黄色 | 亚洲欧美高清在线 | 青青草国产成人久久91网 | 成年女人在线观看 | 久久久久国产视频 | 国产乱人视频免费观看 | www.黄色网.com | 91免费在线视频 | 天天色一色 | 日本免费一级 | 青青草国产青春综合久久 | 黄在线视频播放免费网站 | 中文字幕有码在线视频 | 99视频精品免费99在线 | 毛片网站在线观看 | 久久这里只有精品23 | 欧美一级毛片免费播放aa | 国产在线视频国产永久视频 | 亚洲精品日韩一区二区日本 | 日韩无遮挡大尺度啪啪影片 | 日本免费毛片在线高清看 | 91国内精品久久久久影院优播 | 久久99爱视频 | 欧美日韩国产免费一区二区三区 | 在线视频免费观看短视频 | 嘿嘿嘿视频免费网站在线观看 | 久久亚洲日本不卡一区二区 | 国产亚洲一区二区手机在线观看 | 丝袜超薄交口足456免费视频 | 香蕉钻洞视频 | 福利一区二区三区视频午夜观看 | 亚洲精品线在线观看 | 邪恶工番口番大全全彩色 | 色片免费观看 | 中文一级黄色片 | 毛片不卡一区二区三区 | 男女强吻摸下面揉免费 |