Домен A.HTML принадлежит главной странице A: www.taobao.com
Домен B, к которому принадлежит страница Iframed B.html: www.alimama.com, предполагая адрес: http://www.alimama.com/b.html
Осознайте эффект :Страница под доменным именем a.html встроена на страницу B.HTML под доменным именем B через IFRAME. Поскольку ширина и высота B.HTML непредсказуемы и будут меняться, требуется адаптивный размер IFRAME в A.HTML.
Характер проблемы:Проблема перекрестного доступа JS 'Iframe, поскольку для управления высотой и шириной IFRAME в A.HTML вы должны сначала прочитать размер B.HTML. A и B не принадлежат к тому же домену. По соображениям безопасности браузер ограничивает доступ к JS и не может прочитать высоту и ширину B.HTML.
Решение:Proxy Proxy Page C.HTML принадлежит тому же домену A и A.HTML. C.HTML - это промежуточная прокси -страница, представленная в домене A. Предположим, что адрес C.HTML: www.taobao.com/c.html, который отвечает за чтение ширины и значений высоты в месте.
Код заключается в следующем:A.HTML CODE
Во -первых, B.HTML был введен через iframe в A.HTML
<iframe id = b_iframe height = 0 ′ width = 0 ′ src = http: //www.alimama.com/b.html frameborder = no border = 0px marginwidth = 0 ′ marginheight = 0 ′ Scrolling = no Alluardsparence = Да> </iframe>
B.HTML CODE
<script type = text/javascript>
var b_width = math.max (document.documentelement.clientwidth, document.body.clientwidth);
var b_height = math.max (document.documentelement.clientheight, document.body.clientheight);
var c_iframe = document.getElementbyId (c_iframe);
c_iframe.src = c_iframe.src+#+b_width+|+b_height; //http://www.taobao.com/c.html#width|height
}
</script>
<!-JS читает ширину и высоту B.HTML и устанавливает ширину и высоту чтения на страницу среднего прокси C.HTML в том же домене и устанавливает ширину и высоту чтения в хеш SRC C.HTML->
<iframe id = c_iframe height = 0 ′ width = 0 ′ src = http: //www.taobao.com/c.html style = display: none> </iframe>
C.html код
<script type = text/javascript>
var b_iframe = parent.parent.document.getElementbyId (b_iframe);
var hash_url = window.location.hash;
var hash_width = hash_url.split (#) [1] .split (|) [0]+px;
var hash_height = hash_url.split (#) [1] .split (|) [1]+px;
b_iframe.style.width = hash_width;
b_iframe.style.height = hash_height;
</script>
IFRAME в A.HTML может адаптироваться к ширине и высоте B.HTML.
Другие проблемы с операцией междоменной, аналогичные JS, также могут быть решены в соответствии с этой идеей