我正在尝试将GoodData仪表板嵌入到我的应用程序中的iframe中,但它运行良好但该仪表板上的每个选项卡上都有不同数量的报告,我希望根据实际情况使iframe高度动态化仪表板内容。
有办法怎么做? GoodData以某种方式传播渲染仪表板所需的空间吗?
谢谢。
答案 0 :(得分:3)
实际上有一个postMessage()发送的事件称为' ui.frameinfo'您可以使用它来检测仪表板选项卡高度(使用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);
}
}
请注意,这还不是官方功能,可能会有所变化。