跨源资源共享头可以授权X-Domain IFRAME访问吗?

前端之家收集整理的这篇文章主要介绍了跨源资源共享头可以授权X-Domain IFRAME访问吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
调整IFRAME的高度以匹配其内容页面的高度 can be a real drag,当包含和内容页面不在同一个域时.

跨源资源共享(CORS)标题可以使内容页面授权跨域访问其资源,从而允许其包含的页面读取其高度? (或者,或者,包含页面授权内容页面宣布其高度?)

还是CORS严格的AJAX的东西?

解决方法

CORS不允许您这样做,但您可以使用跨文档消息传递在iframe和其父窗口之间即使在不同的域上发送字符串,并使用它进行通信.

大多数浏览器支持这一点,尽管Internet Explorer’s waythe others不同.

假设你想要的是让iframe向父页面宣布它所需的高度,你可以把它放在你的iframe代码(未测试)中:

var message = {
    width: desiredWidth,height: desiredHeight
};
window.parent.postMessage(JSON.stringify(message),'*');

这在你的包含页面

function onMessage (event) {
    if (event.source != theIFrameElement.contentWindow) return;
    var message = JSON.parse(event.data);
    var desiredHeight = message.height;
    var desiredWidth = message.width;   
}

if (window.attachEvent)
    window.attachEvent('onmessage',onMessage);
else if (window.addEventListener)
    window.addEventListener('message',onMessage,false);

attachEvent是用于IE,addEventListener是为其他人.为了安全起见,您可能需要检查目标原点,但这是一般想法.

编辑:Browser support for Cross-document messaging(-fsb)

猜你在找的HTML相关文章