我正在尝试获取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内容的滚动吗? (尝试固定高度和溢出滚动,并滚动=“是”但不起作用)
答案 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。