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

| 当包含页面和内容页面不是来自同一域时,调整IFRAME的高度以使其内容页面的高度匹配可能是一个真正的阻力。 跨域资源共享(CORS)标头是否可以使内容页面授权对其资源的跨域访问,从而允许其包含页面读取其高度? (或者,包含页面授权内容页面宣布其高度吗?) 还是CORS严格是AJAX的东西?     
已邀请:
        CORS不允许您这样做,但是您可以使用跨文档消息传递在iframe及其父窗口之间(即使在不同的域上)发送字符串,并使用该字符串进行通信。 尽管Internet Explorer的浏览方式与其他浏览器有所不同,但大多数浏览器都支持此功能。 假设您要让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用于其他人。为了安全起见,您可能要检查目标来源,但这是一般的想法。 编辑:浏览器对跨文档消息传递(-fsb)的支持     

要回复问题请先登录注册