찾다

 >  Q&A  >  본문

javascript - js 동시에 열려 있는 두 탭 간에 통신할 수 있는 우아한 방법이 있습니까?

예를 들어보세요:

a와 b 두 페이지를 동시에 열어서 a에 집중하고 몇 가지 작업을 수행하여 페이지 a의 js가 내 작업을 처리하고 그 옆에 있는 페이지 b로 데이터를 보냅니다. 이때, 페이지 b는 서버를 새로고침하거나 거치지 않고도 이러한 데이터를 받아 피드백을 줄 수 있습니다. 바이두 뮤직 PC 웹 버전에서 노래를 들을 때와 마찬가지로 바이두 뮤직 박스 페이지와 목록 페이지가 열려 있는 경우 목록 페이지에서 노래의 '재생' 버튼을 클릭하면 옆에 있는 뮤직 박스 페이지가 나타납니다. 새 페이지를 열지 않고도 해당 음악이 자동으로 재생될 수 있습니다.

이런 일을 하기 위해 쿠키나 다른 것을 사용하는 것은 좀 쓸데없다고 늘 느낍니다.

黄舟黄舟2755일 전687

모든 응답(4)나는 대답할 것이다

  • 阿神

    阿神2017-05-16 13:41:46

    다양한 방법을 사용한 알리바바 면접 질문입니다. localstorage의 저장 이벤트를 사용하여 통신을 수행할 수 있으며 문제를 해결할 수도 있으며 websocket을 사용할 수도 있습니다.

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:41:46

    ab 페이지를 제어하고 URL까지 결정할 수 있다면 sharedworker / localstorage / sessionstorage를 사용할 수 있습니다

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:41:46

    으아아아

    target="framename" 속성은 지정된 프레임(페이지)에서 링크를 여는 것을 의미합니다.
    구현 가능:
    장바구니에 항목을 추가하기 위해 클릭할 때 장바구니 페이지가 이미 열려 있는 경우 페이지를 새로 고치기만 하면 됩니다. 새 플레이어 페이지를 여는 대신 장바구니 페이지를 엽니다.
    노래를 재생하기 위해 클릭할 때 플레이어 페이지가 이미 열려 있는 경우 새 플레이어 페이지가 열리지 않고 페이지만 새로 고쳐집니다.

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:41:46

    아이디어는 다음과 같습니다.
    브라우저는 동일한 도메인 이름을 가진 두 개의 웹 페이지를 동시에 엽니다. localStorage是共享的,不仅如此,他们之间的localStorage值改变也是可以监听的。同域的a和b两个页面,a页面发生localStorage.set('abc', 123) 및 b 페이지는 다음과 같은 방법으로 변경 사항을 모니터링할 수 있습니다.

    으아아아

    회신하다
    0
  • 취소회신하다