2012-11-14 3 views
4

위젯을 표시하기 위해 iframe을 사용하는 하나의 도메인과 여러 웹 사이트에서 위젯을 호스팅하고 있습니다. 상위 웹 사이트에 따라 iframe의 콘텐츠 스타일을 지정하고 싶습니다. 그러나 Same Origin Policy으로 인해 상위 웹 사이트는 다른 도메인의 콘텐츠를 조작 할 수 없습니다.다른 도메인에서 iframe의 콘텐츠 스타일을 지정하는 방법은 무엇입니까?

나는 위젯과 부모 웹 사이트 모두에 액세스 할 수 있으며 상위 웹 사이트에 따라 위젯의 스타일을 변경하는 가장 좋은 방법은 무엇인지 궁금해하고 있었습니까? 새로운 웹 사이트에 iframe을 포함시켜야하거나 기존 웹 사이트에서 스타일을 변경해야만 위젯을 변경하지 않아도된다는 의미의 메소드를 선호합니다.

상위 웹 사이트의 스타일 시트 위치를 위젯에 전달하고이를 사용하여 위젯의 스타일을 지정하는 것이 실현 가능한 아이디어 일 수 있으며이를 수행하는 가장 좋은 방법은 무엇입니까?

위젯 (당신이 PHP를 사용하는 경우) 사용하여 요청이오고있는 곳에서 페이지를 얻을 수 있습니다 호스팅하면 서버에서
+0

querystring 매개 변수로 전달할 수 없습니까? – Lloyd

+1

JavaScript로 위젯을 포함시킨 다음 일부 설정에 따라 위젯에 대한 URL을 작성할 수 있습니다. 이것은 사람들로 하여금 쉽게 그것을 포함시킬 수있게 할 것입니다. 위젯 사이트에서 생성 할 수도 있습니다. 'widget.com/widget.html? color = # 333 & bg = red & size = 12'와 같은 것이 트릭을합니다. 파일을'widget.com/widget.html?css= // example.com/css/style.css' 파일에 포함 시키면 XSS를 피해야합니다. 여기서 보안이 중요합니다. 많은 일이 발생할 수 있습니다. –

답변

0

: 위젯에 대해 서로 다른 스타일을 사용할 수있는 기반으로

$_SERVER["HTTP_REFERER"] 

.

+0

추천자가 신뢰할 수 없습니다. IMHO. – Lloyd

0

querystring 매개 변수를 기반으로 CSS를 반환하는 위젯이 위치한 서버에서 웹 서비스를 만드는 것이 좋습니다. 위젯 iframe은 HTML에 명시 적으로 정의되고 DOM에 동적으로 추가되지 않는다면 외부에있는 애셋을로드 할 수 있습니다 (jQuery 및 관련 CSS와 같은 Google 호스팅 자바 스크립트 라이브러리에 대해 생각해보십시오). 당신을 가정

또 다른 해결책은, 당신은이 API는 당신이에 부모 창에서 (예 : CSS 문자열로 그것과 함께, 데이터 ...) 이벤트를 전달 할 수 있습니다 window.postMessage

사용할 수있는 현대적인 브라우저를 사용하는 자식 창.

관련 문제