In fact there is a postMessage() sent event called 'ui.frameinfo' which you could use to detect the dashboard tab height (when using dashboard.html). It is sent every time the tab changes its height.
The following listener should print out the iframe's internal height:
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);
}
}
Note that this is not an official feature (yet) and potentially subject to change.