【发布时间】:2014-03-18 16:40:14
【问题描述】:
我正在尝试将 GoodData 仪表板嵌入到我的应用程序中的 iframe,它运行良好,但该仪表板上的每个选项卡上都有不同数量的报告,我想根据实际仪表板内容使 iframe 高度动态化.
有没有办法做到这一点? GoodData 是否会以某种方式传播渲染仪表板所需的空间?
谢谢。
【问题讨论】:
我正在尝试将 GoodData 仪表板嵌入到我的应用程序中的 iframe,它运行良好,但该仪表板上的每个选项卡上都有不同数量的报告,我想根据实际仪表板内容使 iframe 高度动态化.
有没有办法做到这一点? GoodData 是否会以某种方式传播渲染仪表板所需的空间?
谢谢。
【问题讨论】:
事实上,有一个名为“ui.frameinfo”的 postMessage() 发送事件,您可以使用它来检测仪表板选项卡的高度(使用 dashboard.html 时)。每次选项卡更改其高度时都会发送它。
下面的监听器应该打印出 iframe 的内部高度:
window.addEventListener('message', function(e) {
var message;
try {
message = JSON.parse(e.data);
} catch (e) {
// valid messages are JSON
message = {};
}
// drop other than GoodData events
if (!message.gdc) return;
if (message.gdc.name === 'ui.frameinfo') {
console.log('frame height:', message.gdc.data.height);
}
}
请注意,这还不是官方功能,可能会发生变化。
【讨论】: