Resizing an iframe height when the contents of the

2019-07-15 00:57发布

问题:

I've been researching this for a few days and I'm stuck... I read this page:

Resizing an iframe based on content

and this page:

Auto resize iframe height when the height of the iframe contents change (same domain)

It seems it's relatively easy to resize an iframe when the maine index.html that contains the iframes first loads, but once the iframe changes content I can't figure out how to re-size the iframe.

my index.html:

<body>
<iframe seamless frameborder="0" name="top" id="top" src="venues.php" width="100%" height="100" /></iframe>
<iframe seamless frameborder="0" name="main" id="main" src="admin.php" width="100%" height="2000" /></iframe>

When venues.php loads it's 100px (which is fine) but when somebody clisk in a (internal, same domain) link inside the venues.php page I need to resize the "top" frame height to fit the new contents.

I've tried a bunch of solutions I can always only get it resized on the first load but not when somebody clicks inside it.

Thanks

回答1:

You could use the mutation observer event and the postMessage API, It's very difficult to create and implement script that can negotiate the dimension measurements of an iframe that frequently changes. I gave up on writing something from scratch and used this small plugin:

https://github.com/davidjbradshaw/iframe-resizer

This Plunker demonstrates the use of this plugin when detecting the mutation observer event fire when resizing of the iframe happens.

PLUNKER



回答2:

You could have a look at David Bradshaws git repo

He has developed a nice script to do what you are looking for.

Keep same and cross domain iFrames sized to their content with support for >window/content resizing, in page links, nesting and multiple iFrames. >(Dependency free, IE8+) http://davidjbradshaw.github.io/iframe-resizer/