Skip to content
Snippets Groups Projects
Unverified Commit 59bb664f authored by Adam Butterworth's avatar Adam Butterworth Committed by GitHub
Browse files

Report iframed courseware content dimensions to parent window (#22972)

TNL-7044
parent 54b64e70
Branches
Tags release-2020-01-29-05.11
No related merge requests found
......@@ -106,3 +106,50 @@ ${HTML(fragment.foot_html())}
% endif
</nav>
% endif
<script type="text/javascript">
(function() {
// If this view is rendered in an iframe within the learning microfrontend app
// it will report the height of its contents to the parent window when the
// document loads, window resizes, or DOM mutates.
if (window !== window.parent) {
var learningAppReferrer = "${settings.LEARNING_MICROFRONTEND_URL | n, js_escaped_string}";
if (document.referrer === learningAppReferrer) {
var lastHeight = window.offsetHeight;
var lastWidth = window.offsetWidth;
var contentElement = document.getElementById('content');
function dispatchResizeMessage() {
var newHeight = contentElement.offsetHeight;
var newWidth = contentElement.offsetWidth;
if (newWidth === lastWidth && newHeight === lastHeight) {
return;
}
window.parent.postMessage({
type: 'plugin.resize',
payload: {
width: newWidth,
height: newHeight,
}
}, document.referrer
);
lastHeight = newHeight;
lastWidth = newWidth;
}
// Create an observer instance linked to the callback function
const observer = new MutationObserver(dispatchResizeMessage);
// Start observing the target node for configured mutations
observer.observe(document.body, { attributes: true, childList: true, subtree: true });
window.addEventListener('load', dispatchResizeMessage);
window.addEventListener('resize', dispatchResizeMessage);
}
}
}());
</script>
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment