1

我正在尝试将 GoodData 仪表板嵌入到我的应用程序中的 iframe 中,并且效果很好,但是该仪表板上的每个选项卡上都有不同数量的报告,我想根据实际仪表板内容使 iframe 高度动态化。

有没有办法做到这一点?GoodData 是否以某种方式传播了呈现仪表板所需的空间?

谢谢你。

4

1 回答 1

3

事实上,有一个名为“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);
    }
}

请注意,这还不是官方功能,可能会发生变化。

于 2014-03-17T12:45:50.733 回答