1

我有一个要从中提取内容的外部域“domainB”。domainB 的脚本中包含 iframeResizer.contentWindow.min.js

我的域“domainA”包括 iframeResizer.min.js,我这样称呼它:

$('iframe').iFrameResize({log:true, checkOrigin:false,
heightCalculationMethod:"taggedElement"});

无论我将“heightCalculationMethod”更改为什么,它都不会对 iframe 的高度产生任何影响。下面是日志

[iFrameSizer][主机页面:iFrameResizer0] 添加了缺少的 iframe ID:iFrameResizer0 ( http://domainB/ ) iframeResizer.min.js:8
[iFrameSizer][主机页面:iFrameResizer0] iFrameResizer0 iframeResizer.min.js 禁用了 IFrame 滚动: 8
[iFrameSizer][主机页面:iFrameResizer0] [init] 发送消息到 iframe[iFrameResizer0] (iFrameResizer0:8:false:true:32:true:true:null:taggedElement:null:null:0:false:parent:scroll ) targetOrigin: * iframeResizer.min.js:8
[iFrameSizer][主机页面: iFrameResizer0] [iFrame.onload] 发送消息到 iframe[iFrameResizer0] (iFrameResizer0:8:false:true:32:true:true:null:taggedElement :null:null:0:false:parent:scroll) targetOrigin: *

所以看起来它正在工作,没有错误,但它没有效果。有没有更好的方法来做到这一点,实际上会改变 iframe 的高度?

4

3 回答 3

3

我遇到过同样的问题。在我的情况下,这是因为在框架内的页面(带有 iframeResizer.contentWindow.min.js 的页面)中有一个外部插件可以设置此 CSS 样式:

body,html{height:100%}

我通过在框架内的页面中添加此 CSS 来修复它:

 body, html {height:inherit !important;}
于 2018-03-06T11:34:14.623 回答
2

我遇到了和你完全相同的问题(相同的设置和所有),并意识到我没有iframeResizer.contentWindow.min.js正确包含在我的“domaindB”中

一旦我确定它被包括在内,它就起作用了——并且正在打印更长的日志列表。

和你一样,我假设因为正在打印最初的简短日志列表(你引用的),所以两个页面正在通信;然而,事实并非如此。

如果您启用了 sourceMaps,您应该会看到来自iframeResizer.contentWindow.min.js

像这样:

iframeResizer.contentWindow.js:150[iFrameSizer][iFrameResizer0] Initialising iFrame (http://domainB.site) iframeResizer.contentWindow.js:150[iFrameSizer][iFrameResizer0] TargetOrigin for parent set to: * iframeResizer.contentWindow.js:150[iFrameSizer][iFrameResizer0] height calculation method set to "taggedElement" 等等等等

于 2016-12-30T16:35:24.720 回答
1

如果这就是您在日志中看到的全部内容,那么脚本没有被加载到域 B 中,或者域 B 上的一些其他 JS 代码正在崩溃并阻止该 JS 运行。

于 2016-12-29T23:44:36.317 回答