Динамическая высота встроенной панели в GoodData

Я пытаюсь встроить информационную панель GoodData в iframe в своем приложении, и она работает хорошо, но каждая вкладка на этой информационной панели имеет разное количество отчетов, и я хотел бы сделать динамическую высоту iframe на основе фактического содержимого информационной панели.

Есть ли способ, как это сделать? Распространяет ли GoodData каким-либо образом пространство, необходимое для отображения панели инструментов?

Спасибо.


person Michal Hauzirek    schedule 17.03.2014    source источник


Ответы (1)


На самом деле существует отправленное событие postMessage() с именем ui.frameinfo, которое вы можете использовать для определения высоты вкладки панели инструментов (при использовании панели инструментов.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);
    }
}

Обратите внимание, что это не официальная функция (пока) и может быть изменена.

person opichals    schedule 17.03.2014