Troubleshooting
The first steps to investigate any problem is to make sure you are using the latest version and then check the JavaScript Console. iframe-resizer will output the details of any issues it detects and give advise on how to fix them.
Solutions for the most common problems are outlined in this section. If you need further help, then please ask questions on
StackOverflow with the iframe-resizer
tag.
Bug reports and pull requests are welcome on the issue tracker. Please read the contributing guidelines before opening a ticket, as this will ensure a faster resolution.
Iframe not downsizing
When the iframe has difficulty downsizing the root cause will normmally be one of two different types of CSS issue. The most common cause is having absolutely positioned elements anchored to the bottom or left side of the page. The other common cause is using Viewport or Percentage Sizing Units on the same axes that iframe-resizer is controlling. The Iframe Content Guidelines section explains both of these issues and how to mitigate them.
To find out which element on the page is causing the issue, you can enable the log
option and it will output the HTML element
being used to calculate the page size to the browser console, each time the page updates.
If for some reason you are unable to fix the CSS on the page, as a fallback you can manually select which page element to
use for page size calculation with the data-iframe-size
attribute. The Advanced Setup guide explains
the different ways that this can be applied to the page.
IFrame not resizing
The most common cause of this is not placing the @iframe-resizer/child package inside the iframed page. If
this does not fix the problem then check x-Frame-Options
http header on the server that is sending the iframe content, as
this can also block postMessage
calls from iframe-resizer if set incorrectly.
Multiple IFrames on one page
When the resizer does not work using multiple IFrames on one page, make sure that each iframe has a unique id.
Localhost 127.0.0.1 and file:///
When an iframe is located on your local machine the browser adds extra security restrictions to cross-domain iframes. These can stop iframe-resizer from functioning. If you need to test something locally, then it is best to use the external IP Address of the machine.
Failed to execute ‘postMessage’ on ‘DOMWindow’
This error occurs when the parent window tries to send a message to the iframe before it has loaded. This library makes multiple attempts to talk to the iframe, so if everything is working then you can safely ignore this error message.
If you’re still having problems, or you really want to not ignore the error, then you can try delaying the call to iframeResize()
until after the iframe onload event has been triggered, by setting the waitForLoad
option to true.
Iframe has not responded within 5 seconds
This error happens when the iframe is slow to respond, or is blocked from responding to the request from the parent page.
If everything is working, then this message can be ignored, or if you prefer you can set a longer timeout. On the other hand
if you are not getting a response and the child package has been loaded in the iframe, then you need to check that iframe has
not been sandboxed, either by setting options on the <iframe>
tag, or with the x-Frame-Options
http header of the iframe.
ParentIframe not found errors
The parentIframe
object is created once the iframe has been initially resized. If you wish to use it during page load you
will need call it from the onReady() startup event handler.
Scrolling does not scroll to where I want it
The scrolling events in iframe-resizer aim to mimic how they work by default in the parent page. If this is not the behavior that you want, then you can use the onScroll event handler in the Parent Page API to adjust how scrolling works to you own requirements.
PDF and OpenDocument files
It is not possible to add the required JavaScript to PDF and ODF files. However, you can get around this limitation by using ViewerJS to render these files inside a HTML page, that also contains the iframe @iframe-resizer/child package.
Unexpected message received error
By default the origin of incoming messages is checked against the src
attribute of the iframe. If they don’t match
an error is thrown. This behavior can be disabled by setting the checkOrigin option to false.
Width not resizing
By default only changes in height are detected, if you want to calculate the width instead then you need to set the direction option to ‘horizontal’.