2010-07-08 2 views
12

Mozilla Firefox를 사용하고 있으며 JavaScript와 DOM을 사용하여 같은 창에서 다른 탭의 내용에 액세스하는 방법을 알아 내려고합니다 (존재하는 경우 다른 기술에 개방되어 있습니다) .브라우저의 다른 탭 내용에 액세스

예 : 다른 탭의 제목을 찾을 수있는 tab1에 자바 스크립트를 실행하고 싶습니다. 기본적으로 메서드를 사용하지 않고 현재 페이지에서 href으로 인해 열어 본 탭을 식별 할 수 있도록이 코드가 필요합니다. 원하는 모든 것은 현재 페이지와 동일한 도메인에 속한 페이지를 여는 간단한 하이퍼 링크입니다 (이 페이지는 새 탭에서 열어야합니다). 이제 현재 탭에서이 새 탭에 액세스 할 수 있어야합니다.

답변

10

당신은 HTML5 cross-window messaging을 사용할 수 있습니다 ...하지만 그것은 다소 최첨단입니다.

그 경우에도 자바 스크립트로 태그 '클릭'이벤트를 납치하고 직접 메시지를 게시 할 수 있도록 새 창 개체에 액세스 할 수 있도록 창을 열어야합니다.

+2

우리는 지난 6 년 동안 많은 발전을 이루었습니다. http://caniuse.com/#feat=x-doc-messaging – Loupax

13

javascript를 사용하여 새 창을 쉽게 열 수 있지만, 나는 그것이 가능한 한 멀었다 고 확신합니다. 보안 관점에서 보면 한 탭의 Javascript가 다른 탭의 DOM에 쿼리하거나 액세스 할 수 없기를 원할 것입니다. 두 사이트가 별도의 탭으로 열리면 모든 사이트에서 은행 계좌 정보 등에 액세스 할 수 있습니다.

+6

예. 알고 있습니다. 그러나 이전에 언급했듯이 새 탭/창은 동일한 도메인에 속할 것이므로 내 웹 사이트에서 은행 계좌 정보를 "훔치지"않습니다. 어쨌든 귀하의 신속한 답장을 보내 주셔서 감사합니다 ...하지만 이것에 대한 해결 방법을 찾아야합니다. - 다시 한 번 감사드립니다 – vamyip

+0

서버 측 열린 탭을 추적하여 비슷한 효과를 만들 수 있습니까? 예 : 새로운 탭에서 특정 링크를 열어 의도적으로 코딩했다고 가정하면 사용자에게 두 개의 탭이 열려 있음을 알 수 있습니다. 또한 두 탭에서 수초마다 클라이언트 측 js (ajax)가 "체크인"되는 경우 탭을 통한 통신이 서버를 통해 릴레이 될 수 있습니다. 예 : 아마도 탭 1은 "Zoo"객체를 편집하고 이름을 "Boston"에서 "Denver"로 변경합니다. 탭 2는 동물원의 동물을 바꿀 수있는 "Boston Zoo Animals"입니다. 탭 2는 ajax 업데이트로 "Denver Zoo Animals"로 업데이트됩니다. –

7

JavaScript로 열려 있고 페이지가 실제로 동일한 도메인에있는 경우 새 창/탭에 액세스 할 수 있습니다.

당신은 그럼 당신은 당신이 액세스 할 수로드 페이지 기다려야 할 것이다 그래서

var win = window.open("/path_to_page"); 

같은 창/탭을 열 수 있습니다 예를 들어, 제목.

win.onload = function(){ alert(win.document.title); }; 
+1

두 페이지가 모두 같은 원점을 가지고 있는지 확인하십시오. 원점 "http : // x"가있는 프레임이 "http : // y"원점의 프레임에 액세스하지 못하도록 차단되었습니다. 프로토콜, 도메인 및 포트가 일치해야합니다 .' – supercoco

8

Vamyip,

는 동일한 도메인에있는 페이지에 액세스 할 수있는 쿠키를 설정하십시오. 다른 페이지에서는 자바 스크립트 타이머를 사용하여 쿠키 값이 변경되었는지, 언제 쿠키 값을 사용하여 조치를 취할 수 있는지 확인하십시오.

그것은 나를 위해 일했습니다.

관련 문제