-
-
Save mauriciogofas/2c65d5fa1d0d2d3449a9f89bb5a0d752 to your computer and use it in GitHub Desktop.
Iframe height issue - make iframe height dynamic based on content inside
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(){ | |
'use-strict'; | |
/** | |
* Iframe to Parent window communication | |
* sample iframe- <iframe id="guestFrame" name="guestFrame" src="http://other-domain.com/"> | |
* </iframe> | |
* Uses https://ternarylabs.github.io/porthole/ | |
* Uses https://marcj.github.io/css-element-queries/ | |
*/ | |
window.onload = function(){ | |
var proxy = window.proxy = new Porthole.WindowProxy('http://parent-domain.com/'); | |
proxy.addEventListener(function(messageEvent) { | |
// handle event | |
}); | |
//Height setup | |
var iframeHeight = 0; | |
var element = document.getElementsByTagName("BODY")[0]; | |
new ResizeSensor(element, function() { | |
var scrollHeight = $('body').outerHeight(); | |
if (iframeHeight === scrollHeight) return false; | |
iframeHeight = scrollHeight; | |
proxy.post({ | |
height: scrollHeight, | |
}); | |
}); | |
Porthole.WindowProxyDispatcher.start(); | |
}; | |
})(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(){ | |
'use-strict'; | |
//This soultion we have used - https://ternarylabs.github.io/porthole/ | |
// example - | |
var iFrameId: 'guestFrame', | |
window.onload = function(){ | |
// Create a proxy window to send to and receive | |
// messages from the iFrame | |
var windowProxy = new Porthole.WindowProxy( | |
'http://other-domain.com/', iFrameId); | |
var $viewPort = $('#'+iFrameId); | |
// Register an event handler to receive messages; | |
windowProxy.addEventListener(function(messageEvent) { | |
if( messageEvent.data.height == $viewPort.height() ){ | |
return; | |
} | |
$viewPort.height(messageEvent.data.height); | |
}); | |
Porthole.WindowProxyDispatcher.start(); | |
}; | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment