在域名和域名时获取iframe内容的高度协议匹配,但子域不

时间:2017-08-01 15:26:13

标签: javascript iframe cross-domain height

我正在尝试获取iframe的https://booking.yourdomain.com来自https://www.yourdomain.com)内容,以便我可以设置它的高度。所以所有的内容都是可见的,就像这样(我从here获取了表达式):

var booking_iframe = document.querySelector('iframe');

booking_iframe.onload = function() {
    booking_iframe.style.height = booking_iframe.contentWindow.document.body.offsetHeight + 'px';
}

但是这会引发以下错误:

VM389:1 Uncaught DOMException: Blocked a frame with origin "https://www.yourdomain.com" from accessing a cross-origin frame.
    at <anonymous>:1:54

域和协议匹配,但子域不匹配,

有什么建议吗?

(如果你想使用de debugger。我在生产环境中只使用iframe创建了一个test.html

- 编辑 -

作为解决方法: 知道如何启用iframe内容的滚动吗? (尝试固定高度和溢出滚动,并滚动=“是”但不起作用)

1 个答案:

答案 0 :(得分:1)

同源策略是浏览器阻止的原因。

要解决此问题,请将以下JS行添加到包含iframe的页面和iframe中加载的页面:

document.domain = "yourdomain.com";

有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Changing_origin

修改:为了根据内容调整iframe的大小,我建议使用iframe-resizer