我正在使用https://github.com/davidjbradshaw/iframe-resizer .
iframeResizer.min.js 位于父页面中
iframeResizer.contentWindow.min.js 在子级中
$(document).ready(function () {
iFrameResize({log:true,checkOrigin:false});
});
日志记录似乎显示消息开始正常 - 它像这样开始
[iFrameSizer][主机页面:contentframe] [iFrame.onload] 发送消息到 iframe[contentframe] (contentframe:8:false:true:32:true:true:null:bodyOffset:null:null:0:false :parent:scroll) targetOrigin: * iframeResizer.min.js:11:62
[iFrameSizer][contentframe] 初始化 iFrame ( http://xxxxxxx/ )
iframeResizer.contentWindow.min.js:9:693
[iFrameSizer][contentframe] 父级的 TargetOrigin 设置为:* iframeResizer.contentWindow.min.js:9:693
[iFrameSizer][contentframe] HTML 和正文高度设置为“自动” iframeResizer.contentWindow.min.js:9:693
[iFrameSizer][contentframe] 启用公共(public)方法 iframeResizer.contentWindow.min.js:9:693
[iFrameSizer][contentframe] 添加事件监听器:动画开始
并以
结尾[iFrameSizer][contentframe] 在 iframeResizer.contentWindow.min.js:9:693 上触发事件锁定
[iFrameSizer][contentframe] 向主机页面发送消息 (contentframe:655:748:init) iframeResizer.contentWindow.min.js:9:693
[iFrameSizer][contentframe] 触发事件锁定 iframeResizer.contentWindow.min.js:9:693
[iFrameSizer][contentframe] -- iframeResizer.contentWindow.min.js:9:693
[iFrameSizer][主机页面:contentframe] iFrame 没有响应。检查 iFrameResizer.contentWindow.js 是否已加载到 iFrame
我正在尝试在 Moodle 中使用它,如果这会有所不同?
有什么想法可以阻止父级接收消息吗? 在演示页面上,消息传递似乎会导致向父级发送一条消息,如下所示
[iFrameSizer][主机页面]已收到:[iFrameSizer]iFrameResizer0:284:1588:init
但我似乎没有收到收到的消息(因此它没有调整父级的大小)
最佳答案
与requirejs有关。
我最终包含了一个 js 文件,其中包含以下代码:
require(['/theme/elegance/javascript/iframeResizer.min.js'], function (iFrameResize) {
iFrameResize({log:true,checkOrigin:false});
});
这似乎以我需要的方式注册了 iFrameResize 对象。
关于javascript - iframe-resizer 发送消息,但未接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42627704/