Динамическая высота встроенной панели мониторинга в GoodData
Я пытаюсь встроить панель мониторинга GoodData в iframe в моем приложении, и она работает хорошо, но на каждой вкладке этой панели есть различное количество отчетов, и я хотел бы сделать динамическую высоту iframe на основе фактического содержимого панели мониторинга.
Есть ли способ, как это сделать? Распространяет ли GoodData пространство, необходимое для отображения панели мониторинга?
Спасибо.
1 ответ
На самом деле существует отправленное 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);
}
}
Обратите внимание, что это не является официальной функцией (пока) и потенциально может быть изменено.