2012-02-15 2 views
0

У меня есть html-страница с css, мне нужен css для управления содержимым iframe на этой странице. У меня есть контроль страницы в IFRAME и следующий код работает, если обе страницы и рамки являются локальными по отношению друг к другу:iframe cross domain get CSS

<script type="text/javascript"> 
window.onload = function() { 
    if (parent) { 
     var oHead = document.getElementsByTagName("head")[0]; 
     var arrStyleSheets = parent.document.getElementsByTagName("style"); 
     for (var i = 0; i < arrStyleSheets.length; i++) 
     oHead.appendChild(arrStyleSheets[i].cloneNode(true)); 
    } 
} 
</script> 

Однако не работает, когда страница с IFRAME и страницы, с IFrame на находятся на отдельных доменах. Кто-нибудь знает, как я могу заставить его работать в двух доменах или иметь альтернативное решение?

Заранее спасибо :)


, как это моя страница, которая отображается в окне IFRAME я не мог просто позволить пользователям иметь их CSS переопределения мое ??

ответ

0

Вы должны использовать Cross-document messaging. В принципе, алгоритм должен работать что-то вроде этого:

  • в родительском фрейме, добавить сообщение слушателя f перед загрузкой IFrame.
  • в IFRAME, создать сообщение слушателю g и отправить сообщение f после OnLoad
  • f посылает CSS URLs как сообщение JSON-сериализации и g загружает CSS в IFRAME