2016-10-21 4 views
1

새 페이지 (B)가 새 창에서 열리도록 _blank 대상으로 JavaScript를 사용하여 양식을 제출하는 html 페이지 (A)가 있습니다. 불확실한 시간을 추가로 처리 한 후, 페이지 A는 Page B에 뭔가를 말해야합니다. 페이지 B는 페이지 A를 오프너로 간주하므로 B에서 페이지 A의 함수를 참조 할 수 있습니다.제출 된 양식의 JavaScript 기능에 액세스하십시오.

페이지 B에서 JavaScript 함수를 호출하려면 페이지 A에서 JavaScript 함수를 사용하고 싶습니다. 어떻게 참조합니까? 페이지 B에서 페이지 A의 기능?

+1

소켓 (긴 풀링)을 사용하고 서버 수신을 통해 연결하십시오. 서버 요청에 응답하십시오. 너무 광범위하게 표시합니다. – Justinas

+1

어쩌면 별도의 페이지를 사용하는 대신 CSS를 사용하여 (모달) 팝업을 작성하면 모든 것이 한 페이지에 들어갑니다. 그런 식으로 문제를 완전히 피할 수 있지만 사용자는 기본적으로 동일한 경험을 얻습니다. – ADyson

답변

0

실제로 다른 탭에서 함수를 참조 할 수는 없지만이를 수행하는 완벽한 방법은 없지만 해결 방법은 거의 없습니다. 서로 함께 chrome extensions dev allows tabs to communicate가이 경우에 해당하지만, 다른 내가 느끼는 방법

1을 작동 할 수 아래 체크 아웃 : 쿠키 대신 대답 보내고받는 데 사용되는 것의 check out this SO answer 사용. 함수 이름으로 쿠키를 전송할 수 있습니다. 수시로 동기화 상태를 유지하고 업데이트 상태를 유지하려는 경우 가장 좋은 방법입니다. 다른 방법으로 한 번 체크 아웃하는 경우 2

2. 페이지 B에있는 함수를 호출해야하는 함수 이름과 시간과 함께 양식을 제출하는 것이 좋습니다. 따라서 여기에 양식이 제출되면 QUERY PARAMETERS 및 www.page.com/pageA를 POST/GET 링크로 가져올 수 있습니다. www.page.com/pageB?f= function_to_be_called | 200 이제 pageB가 QUERY PARAMETERS를로드하고 그에 따라 호출 할 때.

3 이것은 거대한 작업량이며 큰 청크를 교환해야하는 경우 소켓을 사용하여 서버와 통신하고 pageA가 서버에 데이터를 보내고 구문 분석 한 다음 유용한 데이터를 보내야하는 경우에만 유용합니다. pageB도 오픈 소켓을 유지하고있다. 체크 아웃 socket.io

이러한 문제를 해결하기 전에 생각해보십시오. 이 상황이 정말로 필요하다면 다른 페이지로 이동하여 사용자가 같은 페이지에서 탐색 할 수있게하십시오. 그들에게 모달을 줄 수 있습니다. 콘솔에서 쿠키를 설정하고 다양한 방법으로 페이지 B를 속일 수있는 스크립트를 작성하면 쉽게 할 수 있습니다. 다른 방법을 사용하거나 도움이되는지 알려주세요.

+0

모든 주요 브라우저를 지원해야하므로 Chrome 확장 방식을 사용할 수 있는지 잘 모르겠습니다. 저는 실제로 PageR에서 SignalR을 사용하고 있으며 매번 PageB에 추가하지 않아도되고 싶었습니다. 그러나 그것은 작동 할 것이다. 페이지 A가 페이지 B의 오프너이기 때문에 페이지 A를 폴링하여 업데이트를 확인하는 것도 고려하고 있지만 페이징이 싫다. – Velocedge

+0

귀하의 옵션 2에, 그것은로드와 다를 수 있기 때문에 나는 시간을 모르겠습니다. 나는 페이지 A의 함수 이름을 안다, 나는 단지 그것을 호출 할 시간이 없다 ... 다시 폴링으로! ;-) – Velocedge

관련 문제