Siannone
Estamos desarrollando una solución que requiere que coloquemos un informe incrustado en nuestras páginas utilizando la API REST de Power BI.
El problema que tenemos en este momento es que hay algo mal con el código iframe JS pero no tenemos idea si es algo causado por nosotros o simplemente un error.
Para insertar el informe, seguimos este artículo: https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-iframe/.
Una vez que se carga la página, recibimos el siguiente error proveniente del iframe de Power BI (que está atascado en una animación de logotipo que se desvanece):
Datos de mensaje no válidos: jsCommon no está definido
Al inspeccionar el código dentro del iframe, encontramos la línea que está causando el problema:
// Handle message from parent window function receiveMessage(event) { if (event.data) { try { // This is the line that causes the exception. var messageData = jsCommon.JsonExtensions.isJsonString(event.data) ? JSON.parse(event.data) : event.data;
Así es como preparamos el iframe:
<iframe id="reportIframe" src="https://community.powerbi.com/t5/Developer/Power-BI-embedded-report-iframe-throws-javascript-error/td-p/{{ $powerBIReports["value'][0]['embedUrl'] }}"></iframe> <script> $(document).ready(function() { var iframeReportElement = document.getElementById('reportIframe').contentWindow; var msg = { action: "loadReport", accessToken: "{{ $JWT }}", height: 500, width: 722 }; var msgTxt = JSON.stringify(msg); iframeReportElement.postMessage(msgTxt, '*'); window.addEventListener('message', function (event) { console.error('PowerBI embedded error: ' + JSON.parse(event.data).error); }); }); </script>
mpo
La API incorporada de PowerBI ha cambiado recientemente, por lo que es posible que el tutorial esté desactualizado.
algo relacionado: SO pregunta
Tutorial más específico y actualizado