2012-12-03 3 views
2

저는 HTML5 캔버스 요소를 사용하여 소위 랜덤 아트 생성기를 제작하고 있습니다. 이제 실시간으로 캔버스의 시각적 동작을 제어하는 ​​버튼을 별도의 창에 표시하고 싶습니다. 그렇게 할 수있는 방법이 있습니까? 두 개의 별도 브라우저 창을 제어하는 ​​자바 스크립트가 필요하다고 생각합니다.하나의 자바 스크립트가 두 개의 별도 브라우저 창을 제어합니다.

답변

0

크로스 문서 메시징 용 통신 API가 필요합니다.

postMessage을 사용하면 메시지를 보내고받을 수 있습니다. 또한

//Post message 
window.postMessage('Hello world...', 'http://example.com'); 

//Bind events 
window.addEventListener('message', messageHandler, true); 

은 브라우저 지원을 확인하는 것을 잊지 마세요 :

if(typeof window.postMessage === "undefined"){ 
    alert('Your browser doesnt support this functionality'); 
} 

This tutorial might be usefull.

2

당신은 당신의 두 페이지가 동일한 원점에서 (프로토콜, 호스트 이름 것을 제공하는 크로스 문서 메시징을 사용할 수 있습니다 , 포트). 이것은 수행하는 방법이다 :

정보를 보내야 페이지에

(당신의 버튼 있음)이 호출 :의 (URL을 제공 원점에서 제공하는 메시지를 보내드립니다

window.postMessage(message, origin); 

당신의 다른 페이지).

yourfunction 인수를 취
window.addEventListener("message", yourfunction); 

, e : 당신의 왔는지 페이지에서

은이 기능을 포함한다. e는 타입 된 MessageEvent이며 다음과 같은 속성이 포함되어

  • 데이터
  • 기원
  • 소스 (전송 스크립트와 관련된 윈도우를 반환합니다.)

그리고 그 모든 작업이를 그것!

+0

전혀 도움이되지 않습니까? –

관련 문제