Advanced iFrame history

The changes are always listed also in the included readme.txt


  • Security fix: The filter attribute method now filters shortcode attributes which are parsed wrong by WordPress if the user does not have the unfiltered_html permission.
  • Security fix: #x28 and #x29 are filtered if the user does not have the unfiltered_html permission.


  • Security fix: The additional_js and additional_js_file_iframe attribute are now only allowed to be used if you have the permission "unfiltered_html", that you need in WordPress to use iframes. If you do not have this permission, during save the attributes are removed and an error message is shown.
  • Fix: Show iframe as layer was not working properly in Firefox. The link was opening in a new tab. Using a different way to hide the iframe solves the problem.
  • Fix: Filtering all short code attributes failed because "The Plus Blocks for Block Editor" was adding their settings to the ai attributes. I will contact them, why they do such stupid things!
  • Fix: Switching a theme could cause an error message when no content pages where existing. Now this is only executed if content pages do exist.


  • Fix: add_iframe_url_as_param thrown an error because of the additional security filter. Now it works fine again.


Please note that all the fixed issues only apply if a user has already access to your administration!

  •  Security fix: The include_html attribute are now only allowed to be used if you have the permission "unfiltered_html", that you need in WordPress to use iframes. If you do not have this permission, during save the attribute is removed and an error message is shown.
  • Security fix: All shortcode attributes have now input sanitation to avoid Stored Cross-Site Scripting at save if you do not have the permission "unfiltered_html"! This happens in the normal editor and also in the Gutenberg block! Please get the unfiltered_html permission if you get an error message while you want to use '();= or a space in attributes. This sanitation is very general and does not allow all possible things you can do with advanced iframe. As 99.9% of the users who add an iframe are editors or above this should affect almost no one directly and it makes the plugin more secure.
  • Security fix: " inside advanced iframe shortcode attributes is not allowed anymore to avoid XSS attacks.
  • Security fix: Additional output filtering of short code attributes directly used in HTML or Javascript to avoid XSS attacks. This is done for ALL roles!


  • New: Support for Partitioned; See for details. All places where SameSite=None is set also Partitioned; is added now.
  • Fix: When saving the administration the detection of modified ai.min.js could cause a file_exists too long error with a lot of text shown. A wrong variable was used here which is fixed now. Now also the detection works that ai.min.js is regenerated again and again.


  • Security fix: The onload and custom attributes are now only allowed to be used if you have the permission "unfiltered_html", that you need in WordPress to use iframes. If you do not have this permission, during save the attributes are removed and an error message is shown.


  • New: Anchor support in iframe when auto height is active. By default an anchor scrolls to the id specified. When auto height is active no scrollbar does exist and therefore scrolling does not work. This feature is now sending the position of the anchor to the parent and scrolls the parent to the correct place. This feature is supported for the same domain and the external workaround when auto height is enabled. See this demo:
  • New: parent_content_css was moved to the free version to support better integration in webinarignition.
  • New: The setting single_save_button was removed from the code as it was not used anymore.
  • New: When switching a theme the ai content pages are removed as they would still use the old theme. They are recreated on the first usage again.
  • New: "Show content in iframe": iframe_content_css and iframe_hide_elements are now directly rendered to the ai content pages! See the updated demo:
  • New: show_menu_link was removed from the plugin as this was added in the very beginning where the plugin was version small. Now advanced iframe is always shown in the main menu.
  • Fix: The timeout of the version check was reduced to 10 sec so in case the server does not respond properly the administration still works fine.


  • New: New feature: Show content in iframe: Support of src="page" which which generate custom content pages from the normal content and put it in an iframe. See for the documentation. WebinarIgnition is using this feature already. See for more details
  • New: onload_resize_delay does now also support all modifications that are done on the parent. So e.g. change targets/links can be delayed as well. You can use this if content is loaded later by Ajax and this also should be modified!
  • New: iframe_content_css is now part of the free version.
  • New: shortcode_atts supports now 'advanced_iframe' as third parameter. So a filter will be available where you can overwrite attributes dynamically in custom code if needed:
  • Fix: show_iframe_as_layer does now first unregister all onclick events on the elements you select so that double actions are not executed. e.g. like 2 pop-ups are opened at the same time.


  • Fix: Parameters with 0 (e.g. gid=0) where removed because of the default behavior of array_filter. Now a custom filter which does only remove empty parameters is used.


  • Fix: A string was concatenated with + instead of the proper . of php that causes the plugin to fail. Please update asap!


  • New: Improved the documentation of the full screen button
  • Fix: A change in 2023.3 broke the standalone version. This is now fixed in 2023.4.


  • New: With the fullscreen_button_style you can define now 4 styles for the fullscreen buttons. "black" is the default. "black2" a different black version. White and custom are also available. See
  • New: ai.min.js was minimized on the fly and the not minimized version was overwritten. Wordfence was reporting this as an issue as this file is different to the one on WordPress. Therefore the minimized version is now already minimized in the zip and only updated when you change ai.js by yourself.
  • Fix: When lazy load was enabled, the iframe did not show in the block editor, as the show trigger was missing. Now this feature is simply disabled in the preview, as there it is of no sense anyway.
  • Fix: The views counter for the pro version was not displayed properly on the options tab. Now it counts and also resets after 1 month like the free version.


  • New: Real fullscreen. The setting fullscreen_button_full enables the browser fullscreen. See:
  • New: fullscreen_button_hide_elements does now hide the elements by CSS and JavaScript. By CSS was not working e.g. for google ads as they have inline styles with !important that can not be overwritten.
  • New: Added "Left top corner" and "Left bottom corner" to the selection for the fullscreen button.
  • Fix: Added shortcode attribute to the description of fullscreen_button_hide_elements
  • Fix: Added !important at the style for display:none that should hide elements in fullscreen mode when the button is used. This enables that is also works where !important is also defined at the element which should be hidden.
  • Fix: iframe_url_id only shows an error now if the page is in an iframe and the mandatory parameter is not set.
  • Removed: removed aiLoadExternalConfig from the external workaround. It was deprecated for 2 years now.


Important: After 2 years of anouncements entering the purcharse code for all features is now mandatory. After 10.000 view/month the registration message will be shown, if you do not enter it. This is is same behaviour like the free version. Check the purchase code documentation how to find it. If you are not able to get it, please contact me directly for a solution.

  • New: Compatible with WordPress 6.2 - The editor block was broken as WordPress changed an internal structure.
  • New: The fullscreen button was enhanced. You can now hide additional elements which are still over the iframe. See the documentation of fullscreen_button_hide_elements
  • New: Improved documentation. Added "How to find the id and the attributes". where needed.
  • New: Missing purchase code message is now shown as general message
  • Fix: The Javascript minimizer changed their URL. Now the new one is used.
  • Fix: During search the help page is fully available now. This enables, that the links to the help section works properly.
  • Fix: auto_update_plugin filter was improved to not show a warning if "$item->slug" is not set.
  • Fix: Deprecated message in printReferrerpolicy fixed.


  • New: hide_part_of_iframe does now support position:fixed. This enables this feature also to work together with fullscreen iframes. Adding an f (position:fixed) in front of the zIndex has to be used to enable this.
  • New: The CSP header detection is now checking next to SELF and NONE also for the domain itself at the frame-ancestors.
  • New: The url/hash cache for rewrite urls can now be deleted in the administration if needed. Please note that this cannot be reverted.
  • New: Improved documentation of "Prefix/id/urlrewrite for iframe URL". Contact the support for individual solutions.
  • Fix: The disabling of the auto updater in the pro version was rewritten to the examples WordPress provided.
  • Fix: aiModifyParent was loaded directly and on jQuery.ready. When loaded directly some elements are maybe not ready yet and an error was shown in the browser in console the .css is not a query function. Now this error is catched


  • New: Tested with WordPress 6.1.1
  • Fix: "Undefined array key" warnings when updating to php 8.x. If the database does not contain the required values now defaults are stored always during activation. Before it was only saved if no values where present.


  • Fix: hide_content_until_iframe_color was causing an "Too few arguments ..." error. This is fixed now.
  • Fix: addAdminHeaderCode is now using getAiAdminOptions instead of get_option. This does then always load the defaults even when the data could not be loaded from the database.


  • New: The HTML attribute refererpolicy is now available in the administration and as shortcode attribute.
  • New: Custom attributes can be added on the basic attributes page and in the shortcode. The shortcode attribute for this is custom="". e.g. custom="data-custom='data1' data-custom-2='data2'" if you like to add 2 custom attributes. See for an example.
  • New: Check all iframes is now also checking Gutenberg pages and display the page type in the tool-tip. Also normal HTML iframes are detected. So you can replaced them with advanced iframes.
  • New: src which are only numbers are now marked as invalid in the "check all iframes" feature.
  • New: Some themes like Twenty Twenty-Two required an additional p around the iframe to be placed properly. To render this element you can set now add_surrounding_p="true".
  • New: Enhanced the documentation of the HTML property "allow".
  • New: Enhanced registration message. The message cannot be removed permanently anymore as not all features are available anymore if have not entered it.
  • New: Invalid purchase codes are removed and not only a message is shown.
  • New: Enhanced sub domain documentation for the upcoming change in chrome 109 - see:
  • New: Tested with WordPress 6.0.2
  • Fix: replace_query_data which is used in the placeholder replacement like param={query-param} was using a non static method in a static context. This is not supported since php 8.0 anymore. This was causing a "Fatal error: Uncaught Error: Non-static method ... cannot be called statically" error.
  • Fix: The standalone version file was missing a "," in the settings section that made the whole version failing.
  • Fix: check_iframe_batch_size new default is now 20 as the 100 before was not reliable enough.
  • Fix: The link in the registration message was linked to the wrong part of the options tab. Now it goes directly where you can enter the purchase code.
  • Fix: When saving a post the url was not checked even it was not enabled. Now ai_checkUrlStatus is called properly when the classic editor is used.


  • New: Tested with WordPress 6.0
  • New: fullscreen_button does now also support top_left and bottom_left to show the fullscreen button also on the left. Currently this can be only set in the shortcode.
  • Fix: The documentation of debug_js was wrong. debug_js="false" disables the debug console. Actually everything except false enabled it. Now only "bottom" does enable the debug console.
  • Fix: change_iframe_links was not supporting a ' in the jquery selector like a{{href^=''}}. Now ' is supported and also {{ }} are replaced properly with []


  • Fix: The WordPress theme Twenty Twenty-Two evaluates shortcodes before the body only. The advanced iframe pro optimization to prevent this leads to the issue that the iframes are not shown there! The optimization is now disabled by default and can be enabled on the options tab at "Technical options" -> "Prevent early shortcode execution". At the description you find the instructions how to check if the optimization will improve your site.
  • Fix: When the setting loading (default HTML lazy loading) to false the loading HTML attribute was still rendered. Now it is not rendered anymore like described in the documentation.
  • Fix: In 2022.3 the optimization for the timeout was containing a bug for the resize. This is now fixed.
  • Fix: aiRemoveFile does now also have a nonce and the check for it. This is no security issue as deleting an already deleted file causes no problems.


  • New: Fullscreen button on the iframe. Enabling this will add a button on the iframe where you can switch between a normal and a fullscreen iframe like youtube videos. It does support top, bottom and also if a scrollbar is in the iframe: top_scroll and bottom_scroll. See:
  • New: All features that modifies the iframe content (hide, modify css, onload_show_element_only, change targets/links ...) can now also be delayed with onload_resize_delay on the same domain. For the external workaround this was already implemented.
  • New: If enable_lazy_load is enabled the html lazy loading is disabled as it does not make sense to have both.
  • Fix: When you enter the URL directly in the administration WordPress replaces & with & This now replaced again by & internally again.
  • Fix: "Support WP multisite" was not working in all situations when the iframe communication solution was used. It is now only supported when using postMessage and removed for the iframe communication. As this feature is part of the pro version where postMessage is the recommended solution anyway, only users should be affected who forgot to switch to postMessage.
  • Fix: Resize on element resize was bound to one variable name for all iframes. Now every iframe on the page gets its own one. This prevents that 2 iframe overwrite the resize method of the other one.
  • Fix: Resize on element resize and lazy load could lead to an error as a variable was not reinitialized when the iframe code is added to the page.


  • Fix: The title was set to a space on all pages if use_iframe_title_for_parent was activated. And only on iframe pages it was set properly. This part of the feature was now removed again.


  • Fix: use_iframe_title_for_parent was rending in the free version the variable where a backup of the title into the title tag. This does actually work for normal users. Still this not very nice at all.
  • Fix: use_iframe_title_for_parent was only partly working when SEO plugins where active which also modified the title. Now the hook pre_get_document_title is used to get the current title.


  • New: Advanced iFrame now has out of the box support for embedded 3D models using the p3d 3D viewer. Go to and download a pre-configured plugin where the model does scale already nicely on all devices. Get started for free! If you need more storage or access to the Premium features of, you can get a 50% discount on your first payment with the coupon AIFRAME on checkout.
  • New: iframe_height_ratio is now available in the free version! This enables you now to include responsive videos without the pro version. See the demo here:
  • New: iframe_height_ratio can now also be defined in a more common way: 16:9. The ratio with : as separator. The old way was the other way around 0.5625. Both settings are still supported. See the demo here:
  • New: You can use the title of the iframe for the parent. After the iframe is loaded the title will be updated in the browser. This feature works on the same and the remote domain with the external workaround. The attribute for the shortcode and the external workaround is: is use_iframe_title_for_parent. Working examples can be found as part of this demos 32 and 33:
  • New: Minimizer is back. Now the new URL is used and also a fall back was implemented which uses now the the not minimized file in case of a problem.
  • New: Improved validation of change_iframe_links. if change_iframe_links is empty but other settings are done an error is reported
  • New: Improved validation of iframe_content_id and iframe_content_styles. Now also a error is shown when iframe_content_styles is set and iframe_content_id not.
  • New: , is now trimmed at the beginning and the end of all attributes. , at the end of jquery selectors make them invalid otherwise.
  • Security fix: ai_config_id in the administration was not validated properly on the server. Now the regex only allows a-zA-Z0-9_- as id like it was intended.
  • Security fix: The nonce is now also checked for all file creation operations requests where config/css/js files can be generated. Before it was only used when the normal config was saved.
  • Fix: The onload setting was not handling quotes properly anymore. They got replaced by ' because of a new general filter and this broke the onload settings because " where required. Now the input accepts " and ' and does convert them to " before usage. It can now also be used in shortcodes with '.
  • Fix: When using the loading icon together with less then 100% in % the % where added twice. So 50% where at the end 25% as it was applied to the icons div and the iframe. Now 50% are 50%.


  • Hotfix: The minimizer for ai.js changed the url and therefore minimized files where brocken. The minimizer is now disabled until I find a new more reliable one. Please update asap. You administration will not work anymore! Please uninstall and install the new version. Sorry for the inconvenience.


  • Fix: Setting hide_content_until_iframe_color was causing a problem in the Gutenberg editor as there some code was rendered into the json response. Now in editor mode this part is rendered later and in normal mode still where it needs to be to work properly. The div which hides the whole page needs to be rendered before the plugin itself because otherwise you first see the page for a small time and then the page is hidden. And this is exatly what the feature should prevent!
  • Fix: Version numbers where not updated in 2021.7. It was still showing 2021.6 in the header.


  • New: Tested with WordPress 5.8
  • Fix: Updating failed: The response is not a valid JSON response. The detection for duplicated ids and the time debug was moved to be rendered later. This fixes the problem with e.g. the Oyxgen builder when included on the admin site and configuration errors are rendered to the Javascript console. Also some plugins together with the gutenberg block editor show a JSON error. They execute the shortcode because of ?? and where triggering this error.


  • New: "Iframe redirect url" does support now several urls. So you can allow more than one page to include it. The first url is used if someone does open the page in the iframe without parent.
  • Fix: When "change url parameter" is active there was a conflict if you added a 2nd iframe to the page. The needed method was overwritten. Now it is only rendered when needed.
  • Fix: When "change url parameter" is active the internal console log sending parameter does now not trigger an url change anymore
  • Fix: Empty parameters at "change url parameter" are now removed. So urls look nicer.
  • Fix: Uls that contain something like ?s[a][0][b]=test&s[a][0][c]=test2 where not parsed properly inside the replace parameter function. This is now fixed. If such constructs are found the url will not be touched
  • Fix: When bbcode style is used [...]your src[/...] wordpress replaces & with & This now replaced again by & internally again. Otherwise the # detection will not work properly.


  • New: New replace parameter {requesturi}: The full request uri from the parent is added to the iframe. So everything behind the domain will be added to the iframe! E.g. ->, ->, ->
  • New: When debugging external post messages the received message is now printed to the console log.
  • New: The plugin version is now added automatically to the ai_external.js + ai.min.js
  • Fix: Some setups could have "parent.postMessage" not found in the ai_external.js.
  • Fix: When using Gutenberg a </div> was rendered too much in some cases. Thanks to harrinsonmb who found the issue.
  • Fix: Undefined variable $debug_js ... fixed when all-in-seo is installed and E_WARNING is enabled.


  • New: Improved documentation of "Show only one element" and of "URL forward parameters"
  • New: The auto update link on the right which is available since WP 5.5 is now disabled for the pro version. For automatic updates for codecanyon please use
  • New: Generated files are now only generated when advanced iframe was updated. The code introduced in 2021.2 was running on each update!
  • Fix: php 8 issue "Call to undefined function printError()" not found fixed. Happened also during update of other plugins as the new hook to generate missing files is triggered there as well.
  • Fix: Disable output during update. Errors/warnings are only shown inside the plugin.
  • Fix: Error in hashrewrite fixed. After refactoring a method needs to be called differently.
  • Fix: The origin check url for post messages was invalid as during refactoring a ! was deleted by accident. Now this works fine again. If no origin check url can be detected now the origin check is disabled. This fix is important as the external woraround with auto heigt was not working anymore in some situations!
  • Fix: Add url to param was not always adding https correctly. This caused the "Http iframes are not shown in https pages in many major browsers..." message for some users.


  • New: Tested with php 8 and WordPress 5.7.1
  • Fix: Fatal error with php 8 fixed!
  • Fix: Handle cannot be saved issue with php 8 fixed.


  • New: The Javascript debug mode does now enable the debug mode of the post communication and the debug mode of the ai_external.js automatically. This improves quick help a lot, as this can be enabled by parameter.
  • New: ?aiEDC=true can be also used to enable the debug console. ?aiEnableDebugConsole still works.
  • New: Two log levels instead of one are used now: .log() for info. .error() for configuration error
  • New: Optimized performance when reading the options
  • New: Check for duplicate ids. As a duplicate id causes errors a new check was added that prints this problem into the console.
  • New: Optimized performance when you use AOSEO! They do execute shortcodes to get data for titles/descriptions. This leads to the problem that each shortcode get executed up to 3 additional times! Now the rendering of advanced iframe is limited to the body section and only a <!-- advanced iframe not rendered --> is added when debug mode is active. So if you check your source code and see this comment your page is now a little bit faster :). This is also reported as bug at AOSEO as they should cache this rendering and not execute it up to 3 times. On my demo page it happens in total 24! times. See: view-source:
  • New: Added an "Advanced iframe checklist". Read this first to have an optimal start:
  • New: Improved editor button. Now a updated way to insert the shortcode is used which should support most possible scenarios
  • New: ai.min.js is now default. If is only 48k instead of 79k.
  • New: ai.js/ai.min.js have now a debug mode. If you enable the internal debugger also ai.js does print additional messages which Javascript is called. this is very helpful especially if you have problems with the auto height on mobile devices.
  • New: Standalone jQuery version was updated to jQuery 3.5.1
  • New: Code refactorings. Some code was extracted nicely to classes. Further refactorings will follow in the next releases.
  • New: ai.min.js and ai_external.js are recreated after update to have the latest versions always.
  • New: All internal images where optimized.


  • New: Tested with WP 5.7
  • Fix: 3 links in the administration fixed.
  • Fix: Auto popup demo was not working on https. Now this also works.



  • New: Added a new warning when using document.domain! Some plugins like elementor crash when this is set.
  • Fix: Pressing the return button in the administration was giving a "filename not valid" message as the first submit button is the form was the one creating a custon file. Now I changed this to the default "Update Settings" button that makes more sense.
  • Fix: iframe_redirect_url was only working after the first page load. Clicking inside the iframe was also redirecting. Please note! If the user clicks inside the iframe to another domain the redirect is triggered! So the only change of a domain which is allowed is the one from your parent domain to the iframe domain!
  • Fix: Demo link in the plugins section fixed.


  • New: Hide URL in HTML. With hide_src you can now hide the real url in the html code. The url is replaced by a link to a script that redirects to the real URL. The URL is not in the source code but still little bit more advanced users are able to see the real url in the developer tools. For more information please see here:
  • New: Disable right click when "Hide URL in HTML" is enabled.
  • New: Support SameSite cookie for the safari fix, Keep iframe modifications outside iframe and the temples switcher template
  • New: All demos are now configured to work with https. Some are still http to show http/https solutions. Some demos you cannot switch between https and http because some things in the config need to be hardcoded.
  • New: Most links link to the https version where it makes sense.
  • New: You can now enter your purchase code of codecanyon to verify you are a paying customer. Currently this is optional. In the future it will unlock the pro features you have paid for.
  • New: A message was added if you have not added your purchase code from codecanyon. Can be removed by closing it.
  • New: Tested with WordPress 5.5.3
  • New: A new global message was added if there is a discount available on codecanyon. Can be removed by closing it.
  • Fix: The ai_external.js hat at one place advanced_iframe hardcoded. This is now dynamic so it also works if you pick another default id for the external workaround. Thanks to Marc for finding this.
  • Fix: Get_magic_quotes_gpc was removed as it is depecated since php 5.4
  • Fix: Updated some links in the wordpress documentation as they changed
  • Fix: enable_responsive_iframe gets !important at width, max-width, min-width settings to avoid that other scripts overwrite this
  • Fix: The origin detection for https was done by a wrong $_SERVER variable.
  • Fix: History link was fixed


  • New: WordPress 5.5 changed the behavior of the parameter page in the url! You now get a 301 redirect on normal pages if you use ?page=XXX. Unfortunately this also kills url features of advanced iframe pro. You can now set "Fix WordPress 5.5 page parameter change" to true on the administration. Then you can again use ?page=abc for example again. Numeric values are still not allowed because removing this internally would kill the pagination where the page parameter is really used!


  • New: The iframe can now be reloaded when the browser is resized or the device is rotated. This can be done in the reload feature by adding r as prefix.
  • New: The whole page can now be reloaded when the browser is resized or the device is rotated. This can be done in the reload feature by adding r as prefix AND a p at the end.
  • New: Compatible with WordPress 5.5 now. The postboxes in the administration where changed and needed to be adopted. Now the new style is used if you use WP >= 5.5
  • Fix: Small css fix for the post boxes.
  • Fix: Added some missing settings to the standalone version.


  • Fix: Lamba functions where removed in Javascript as this is not supported in IE11. Now also IE11 is also fully supported again.
  • Fix: The param function which checked parameters failed when an array is given. Now this is detected and the first values is used and checked.


  • Fix: The additonal text in the Gutenberg editor was shown also in the normal page if only the Gutenberg editor is used. Now it is only shown in the edit mode.


  • New: The height field does support media queries. So you can define the height of the iframe depending on the browser width. Before you need to know how media queries work. Now you simply enter the values you like! See:
  • New: The "Show only a part of the iframe" solution does support media queries. See
  • New: The advanced tab was rewritten. Now meta boxes that store their state are used here as well.
  • New: A default for open and closed boxes after reset/activate is set now.
  • New: hide_part_of_iframe does now support "changeViewport" as url. This makes it possible together with "show only a part of the iframe" to create a iframe which shows a small area first and once clicked the iframe enlages to a bigger viewport. This makes sens if you don't have access at all and your application inside is an ajax application which does not fire an onload event which would change the viewport normally.
  • New: In the Gutenberg block preview a margin-top of 10px is added to make it possible to select the block again. Before you could only do this by selecting the area almost at the bottom where the + is shown or if your iframe was not 100%.
  • Fix: Because of a unknown reason the block editor in the additional field replaces " with u0022. Internally now the u0022 is replaced again properly. But you still have in the additional field the wrong display. Lets hope WordPress/Gutenberg fixes this bug soon.
  • Fix: Area selector was not enabling all fields automatically.
  • Fix: Language files were not used anymore. Renaming them to advanced-iframe-en_US.* enabled them again.


  • New: You can now include an iframe to ALL your pages. The iframe you define in the administration is used. This is very cool if you like to use the "Show iframe in layer" for all external links. Also nice for e.g. a chatbot or a overlay you need on all pages. The new setting is in the "Show iframe as layer" section.
  • New: The e-mails for checking iframes do now contain the pages which have problems so you can check right away. I added this because I had sometimes error message but when checking they where gone already and I did not know what failed. So now you can also identify instable iframes.
  • New: The detection of iframes for the iframe checker in a page does now take also new lines in the source code into account.
  • New: The message of the cron job to detect broken iframes was improved. It shows now the number of iframes that failed because because http iframes where loaded in https pages.
  • New: Better RTL support.


  • Fix: Auto height for pages over 10000 pixel where not working anymore because of the new fix when the size only changes 5px (see 2020.1 last line). The last used height was saved at the wrong place.


  • New: Remove elements from height. You can now do extended height calculations. Like using a height of 100vh - the height of the elements you define. Like a header where the rest of the page is the iframe. But compared to the static version (100vh - 100px) this does also work perfect for headers which change depending on the browser resolution. See this demo.
  • New: Improved version check. Now a nice json is used internally
  • Fix: url_forward_parameter was checking duplicate parameters by a simple contains. This leads to problems is substrings where already matching in the url. Now the full parameter name is checked.
  • Fix: resize by element resize in the external workaround is only triggered if the difference is > 5 px. Reason. Some websites have min-height:100% defined. If the iframe gets bigger also the page inside does. And as I add 4px for IE this means that the page will grow and grow. The solution for the same domain does not use the 4px so there is is not needed - So if you have this 4x issue with IE - also use the external workaround locally as this is the pro solution compared to the free solution 🙂


  • New: The iframe checker was rewritten to work in parallel. So you can even test 1000 urls at once!
  • New: The iframe checker does check also normal iframes! Not only advanced iframes!
  • New: Full redesign of the backend. It uses WordPress dashboard boxes now at many places.
  • New: The iframe checker does now also check the content security header header for restrictions
  • New: The url in the administration is only checked once every hour now. This does improve loading times of the administration a lot.
  • New: The size of the loader icon in the custom folder is now detected automatically.
  • New: Tested with WordPress 5.3.2
  • New: Many document.write in ai_external.js where replaced to include js and css more elegant
  • New: Documentation on the external workaround was improved.
  • Fix: post messages which are not in json format throw an error in the console. Now this error is catched and only logged in the debug mode of post message. This was fixed in the plugin and the ai_resize.js
  • Fix: The "Map parameter to url" was stripping / from the parameter. Depending on the setup this lead to an error. Now the / is added in the code if missing.
  • Fix: The "Add iframe url as param" is now not appending parameters again and again after a reload. They only happened if you also use "URL forward parameters"
  • Fix: enable_ios_mobile_scolling is now enable_ios_mobile_scrolling. Internally it is still the old but in shortcodes and the generator it is still enable_ios_mobile_scolling. So old short codes do still work!
  • Fix: The shortcode generator was using the defaults for the free version. Now it uses the right one depending on the version.


  • Fix: The loading icon was broken because of a missing ". Now it works fine again.


  •  New: The debug console can be enabled by adding the url parameter aiEnableDebugConsole=true to the url of the parent page. This writes a session cookie and debugging is enabled as long your did not close your browser. aiEnableDebugConsole=false does disable it again!
  • New: Debug console was rewritten. It does now display all possible logs in the browser console again and the debug div!
  • New: By adding ?aiEnableCheckShortcode=true to the url the short code check is enabled dynamically. At the preview this is now added all the time!
  • New: userinfo data and usermeta data documentation was improved. If you use & = in meta or user info like in a query string you have to split this data into 2 custom fields as all fields are url encoded.
  • New: Improved documentation and quickstart guide.
  • New: Disabled elements are now also in a disabled text color
  • New: When the pro version is active resize on element resize is available and resize_on_click, resize_on_click_elements, resize_on_ajax, resize_on_ajax_jquery are removed from the administration because this replaces this features in a much better way.
  • Fix: Depending on the setup more then one onload event can be fired. Now the onload counter has a measurement timeout that solves this problem.
  • Fix: postmeta extraction had a copy past error.
  • Fix: user info and user meta divs do now break properly even when there are no spaces in the string.


  • New: Config files can now be included directly into ai_external.js. See the new section at the "external workaround" tab. This makes it possible to reduce dependencies on the other site. You only have to include ai_external.js now! You can even include the config switcher directly now!
  • New: ai_external.js is also compressed and available as ai_external.min.js
  • New: ai.js is compressed but currently not used yet as this is in testing phase. if it works fine this file will be used in the next update.
  • New: Replace all normal html iframes with advanced iframes on your page.
  • Fix: Anchor and add of url parameters are now also working together!
  • Fix: vh and vw where not allowed in the width/height field in the Javascript validation. Now the administration does allow all useful settings.
  • Fix: Many small typos fixed in the administration.
  • Fix: As edge for IOS the administration was not initialized and therefore the tabs where not working. Now there is an additional check included for this browser
  • Fix: Scroll to top when set to iframe was not scrolling properly. Now a small timeout and an improvement how to measure the offset was done.
  • Fix: Scroll to top and scroll to an anchor was inferring. Now if a # is in the url the scroll to top feature is disabled.
  • Fix: Chrome was scrolling 367 pixel to the bottom when a # without an anchor was defined. the # is now removed automatically to avoid this jump.

Version 2019.7

  • New: Add iframe url as param has 2 new features! Using an id instead of the url and using also urlrewrite for better urls. So instead of e.g. ? the url looks not like this: /page/1. See
  • New: Add iframe url as param does now also supports the handling of existing query parameters
  • New: Update jQuery local fallback copy to 1.12.4 (like WordPress does since 4.6)
  • Fix: Add iframe url as param failed if the parameter itself was also included in the main url. Now this also is supported.

Version 2019.6

  • Fix: Completely empty shortcodes [advanced_iframe]] throw an error. Now this is covered. Before the security code was mandatory where this could not happen.

Version 2019.5

  • Fix: Hiding the iframe during page transitions was not working.

Version 2019.4:

Version 2019.3:

Version 2019.2:

  • New: Improved documentation of the external workaround.
  • Fix: Invalid anchors like #foo&foo2 are ignored because this is then no real hash but maybe a hash used for some business logic.
  • Fix: Error message in the internal debugger was fixed if no headers could be detected.

Version 2019.1:

  • Fix: startsWith is not supported in IE11. It was replaces with a different implementation. This was used in the "Add iframe url as param" feature
  • Fix: 3 links from the administration where pointing to old urls. Now they point again to the correct ones.
  • Fix: Fixed typos in the administration

Version 2019:

  • Tested with WP 5.2
  • New: iframe anchor support! if you enable auto height you can now also specify an anchor in the iframe! ther parent does then scroll automatically to this location! Does work on the same domain even in the free version. In the pro version this is also supported external doomains by the external workaround. See Example 51
  • New: Full Gutenberg support. An advanced iframe block is now available. parent_content_css is now rendered a little bit later because of the Gutenberg preview.
  • New: You can now change also the href of links and not only the target! change_iframe_links_href does work for the same or in the external workaround. It can also be used to add a string to the existing href. It also does work for links which are later on added to the webpage by ajax. Delegated event handlers are used here. See
  • New: Targets can now also be changed for links which are added later to the website. Delegated event handlers are used here now.
  • New: The calc support was improved. px is now automatically added when needed. 100%-100 -> 100% - 100px. Because without px is does not work!
  • New: You can set a custom loader icon by saving a loader.gif in the advanced-iframe-custom folder in a size of 66x66
  • New: “ ” ‘ ’ are now remove from shortcodes. This fixes mistakes from users which used the wrong single or double quotes.
  • New: You can now also delete all data from the database when uninstalling. By default this is off. This can be now enabled on the options page.
  • New: An uninstall.php does exist now. So if you set the settings in the administration the database can also be cleaned up when you delete the plugin.
  • Fix: the src is now always encoded to be sure that url_forward_parameter cannout be use for xxs attacks.
  • Fix: height and width do now get px added in the style attribute if not entered.
  • Fix: header('P3P:.... is now added in the action send_headers and NOT in the init anymore at it was interfering at a user with one on his plugins.
  • Fix: Some changes to css and js where made to be more compatible to the new codecanyon plugin coding rules.
  • Fix: Editor button was not working in new posts. It was only working when editing existing ones.
  • Fix: $fixChrome65 was not working for next view ports properly. now it does ;).
  • Fix: set_time_limit can be disabled. Now this is checked and also @set_time_limit is used now.

Version 7.6:

  • New: Support of the safari cookie fix from Please see the documentation at "Safari cookie fix" on the advanced tab. See example This setting can be done at the "Advanced Settings" tab -> "Advanced features" section.
  • New: The safari coookie fix is also availabe in the resize.js. See
  • New: header('P3P: CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV DEM"'); is now set by default to allow cookies in IE. You have to set this manually for remote pages.
  • New: Cookie fix for IE is included and added to the documentation (p3p header is sent!). See
  • New: Scroll to top is now also available for the external workaround for ajax forms. See
  • New: Scroll to top is now also available if you share your content to a different domain. See
  • New: Extended jQuery help and documentation for finding external links and changing the target there!
  • New: Margin top and botttom is now set to 0 of the elememt to measure to avoid that you need to use the additional height setting if this is not the case.
  • New: Improved the add_iframe_url_as_param_prefix setting. Additional checks was added for https. s| is now only added when a https site is included into a http page.
  • New: The mapping of parameters from the parent url is now done after "Map parameter to url". So that this 2 features now work together!
  • New: Standalone version does now also support to be included inside a method. This makes is possible to include it also to e.g. Joomla
  • New: Standalone version does now support to set $iframeStandaloneOptions directly before you include the standalone version. This makes it possible that you don't need to create a settings file but define it before the include.
  • New: Standalone version was now tested with the latest version of Joomla 3.8.10 with the usage of phpDirect successfully.
  • New: resize_on_element_resize is now initialized in the onload event and not only once. So it works on next pages in an iframe also!
  • New: Demo for iframeresizer
  • New: Resize summary on the website:
  • New: The reset to default get postMessage communication as default as only 0.2% of all used browsers (IE <= 8) do not support this! When the project was started this was almost 20%!
  • New: {session_id} is now available as url parameter. If a session does exist it is replaced by the session id otherwise with a empty string.
  • New: Added overflow:hidden by default to the ai_wrapper_div. Seems that the measurement especially for floating layouts is better then. This is also added to the documentation of the "element to measure".
  • Fix: $hide_page_until_loaded unload event is now moved as last part of the onload event and surrounded with a try/catch. This caused the hide_part_of_iframe feature to fail when it was used on different domains. So now the $hide_page_until_loaded works again on different domains but without otimized page transitions. But for this you should still use hide_page_until_loaded_external if you like to hide css modifications on an external domain.
  • Fix: Improved documentation of show_part_of_iframe_style
  • Fix: wp_kses was not mapped in the standalone version.
  • Fix: advanced-iframe-custom folder in the standalone version für a custom loader icon is now also mapped correctly.
  • Fix: The area selector was not inserting the security key properly after the security key was made optional. Now it is inserted properly again.
  • Fix: The code for $hide_page_until_loaded changed because if about:blank is used as default the onload event was fired too fast.

Version 7.5.7

  • New: Keep iframe modifications outside iframe: Normally the page in the iframe is only modified if it is in the iframe. But sometimes the page in the iframe does not work properly in the iframe in a workflow. So you need to jump out out of the iframe. But you maybe still want to hide/modify the content of this page even outside the iframe. This feature does enable this by setting a session cookie. If you enable this feature a cookie is set if you do modifications in the iframe and even if you jump out of the iframe the modifications are still done. See
  • New: "allow" is now supported as attribute. This is needed to still allow auto play. See:
  • New: A new default page is now set. Instead of // now // is used. The 2nd page makes more sense as it also contains help after installation. After activation this url is replaced if the old default is still present.
  • New: multi_domain_enabled is now set to true by default to make configuration easier.
  • New: hide_page_until_loaded_external does now also take onload_resize_delay into account. Means the page is now shown always after the delay for resize and modifications.
  • Fix: "Resize remote iframe to content height" in the administration was alway jumping to "External" and not to "Yes" because of a wrong name of the field. Now "Yes" can be selected again.
  • Fix: The error message that is displayed in the frontend has now a rel="nofollow" to avoid unwanted link sharing.
  • Fix: Improved the documentation on the external workaround page.
  • Fix: The placeholder for rgba was changed from ; to § to still support additional styles in the "hide a part of the iframe" feature,

Version 7.5.6

  • New: $hide_page_until_loaded does now hide the page again for onload events after the initial one. So css modifications are now also invisible for all page transactions. Before this was only possible by using the external workaround even on the same domain.
  • New: "Check iframes on save" can fail and a white page is then displayed if curl is blocked on the server. If this is the case this feature is now disabled automatically. By default it is disabled since 7.5.5 anyway. But the reason is curl and not virtual composer as supposed in 7.5.5 !
  • Fix: 7.5.5 was adding the fake plugin which caused the activation of the normal plugin to fail because WP was scanning the wrong file. The file is now internally renamed and now it works also fine when installing with the zip.

Version 7.5.5

  • New: Optimized the "Add iframe url as param" feature. |s is only used when needed and / is now not encoded in the url. So the urls look nicer now. See
  • New: ai_external.js can now also be added direclty to the admin as well. This makes it possible to use the external workaround there. Like for the site this makes sense for some setups where you want to use features like "write css direclty" on the same domain.
  • New: change link targets do now support a[href='xxx'] also in the shortcode. You ned to replace [ ] with {{ }} because otherwise WordPress thinks [] is a shortcode.
  • New: resize on the same domain is not triggered anymore if about:blank is in the url. This is useful if you open links in an existing iframe but initially about:blank is set.
  • New: check_iframes_when_save is now false by default as a user reported a problem with virtual composer.
  • Fix: The custom folder is now a fake plugin because otherwise the files in the custom folder cannot be saved with the internal WordPress folder.
  • Fix: Chrome 65 has a bug which causes "Show only a part of an iframe" to fail sometimes. This is fixed in chrome version 66. But it will be relased in 2 weeks and therefore a workaround is needed till then.
  • Fix: The free version was checking iframes with a cronjob which is feature of the pro version. But it could not be disabled as the settings where missing there. Now it is disabled again and available in the pro version only.


  • Fix: The free version was checking iframes with the cronjob which is feature of the pro version. But it could not be disabled as the settings where missing there. Now it is disabled again and available in the pro version only.

Version 7.5.4

  • New: The security key is now optional. You can still set if like before in the administration and the behavoir is exactly like before. But many users told me they don't need it and therefore I made it optinoal now by default.
  • New: The view limit of the free version does now not make the iframe stop but is showing a powered by message below the iframe.
  • New: If $add_iframe_url_as_param is set then $map_parameter_to_url is set to "page" by default if not set differently in the config.
  • New: Better documentation of the resize on the same domain. resize_min_height is now documented there with possible alternate solutions if is does not work.
  • New: All js files where checked with jshint and all errors/warnings where removed. So now if you open the files in the WordPress editor you should not get any complaints anymore.
  • New: The automatic check of the url can be enabled/disabled now. When the load of the administration does fail it is autmatically disabled now because otherwise the administration screen could be white.
  • New: The save checks when you save a post or page can now be configured. You can disable it, show only errors or errors and warnings. Default is now error.
  • New: ai_post_message_converter.js is now iframe id dependant. This makes it possible to have different post messages on the same installation at the same time. the naming is now: ai_post_message_converter_<id>.js. You can still use ai_post_message_converter.js which applies for all iframes then.
  • New: Added the documentation for the BBCode [[advanced_iframe]url[/advanced_iframe]. This was only documented in the FAQ.
  • Fix: The normal show iframe (without any header/footer) as layer was always 100% instead of 96%. This was because of a change in 7.5.2 and is now fixed.
  • Fix: ai_post_message_converter_template.js was not working properly as can not be overwritten. Now the converter does return a new modified object which is used after that.
  • Fix: In the iframe tag ' was used for all attributes. This is now replaced with " where every possible. Only the onload='' attribute uses still the single quote because double quotes are used a lot inside. This enhanced the compability with WpRocket
  • Fix: A Javascript error in aiAutoZoomExternal was fixed. This caused the feature "auto zoom by ratio" to fail. This now works fine again.
  • Fix: allowfullscreen was only enabled in the pro version but it should be available in the free version. Now this is the case.

Version 7.5.3

  • Fix: An error in ai_external.js was fixed, which prevented the external workaround to work.

Version 7.5.2

  • New: Provide parts of your website to other domains with "Enable content filter". This new feature does actually not provide an iframe but you can offer parts of your website identified by an id in an external iframe with additional auto height. The content can be clipped on the server and on the client depending on your setup. See
  • New: Provide parts of your website to other domains with "Add ai_external.js local". The setting does add the ai_external.js to your own site. This enables you to provide parts of your site into an external iframe. This is simelar to "enable_content_filter" where you can filter parts of your page. The advantage of this solution is that you can use all css modifications and auto height of this solution. See
  • New: Internal JS debug console: debug_js. You can redirect the Javascript console log to a visible div. The pro version also supports the external workaround. This is very useful if you have errors only on e.g. an ipad where accessing this info is very hard. Also the user agent and the full headers from the iframe are displayed there! See
  • New: The free iframe checker is included at the url field in the administration. So you can do a basic check already there.
  • New: Each iframe url is now checked when you save a post! As many users seems not to use the free iframe checker, the checker is now included there as well.
  • New: All iframes on your site can be checked by a single click. Simply check "Check all iframes" at Url on the basic tab.
  • New: All iframes on your site can be checked by a cronjob. So once a day a status e-mail is sent to the e-mail you provide. Please read the instructions on the options tab because maybe you need to switch to native cronjobs if you have many iframes because of performance reasons.
  • New: "hide parts of the iframe" does now support semi transparent backgrounds. So rgba(1,1,1,0.5) does work. But , has to be replaced by ;. So rgba(1;1;1;0.5) is the format you need to use. See
  • New: "hide parts of the iframe" supports that divs can be removed by a click again with adding $hide after the color. See
  • New: "hide parts of the iframe" supports that divs can be removed automatically after a specified time with adding $hide3000 after the color. So after hide you add the time in ms. See
  • New: The delay of the resize of the external workaround does now also delay the init of the resize to element resize. This solves the problem if elements are loaded dynamically.
  • New: vh and vw are now offically supported. See
  • New: html title is now supported.
  • New: jquery-lazyload-any was updated to v0.3.1. Also "Script Style" is now used instead of "Comment Style". This has now the big advantage that lazy load still works even if tools which do optimize the html by removing comments. So it is now compatible with e.g. wp rocket.
  • New: iframe_redirect_url does now also check if the page is included by the domain specified. Otherwise it is redirected to the iframe_redirect_url. This way you can make sure that the iframe page can only be included by your domain. This solution depends on Javascript and also that a referrer is sent to the iframe. But this is no 100% protection because you can fake the referer on some setups with a javascript location redirect (See and if you disable Javascript with a sandbox. So please add a css with html { visibility:hidden; } to the page in the iframe. This does hide the page by default for everyone. The ai_external.js does then make the page visible again! If no referer is found the iframe_redirect_url will be used always if the page is in an iframe.
  • New: Wrong configurations of 'resize to element resize' is detected now and is logged to the console. A try catch was added to handle this problem properly.
  • Fix: The resize in the external workaround does now reset the resize delay at is does not makes sense here.
  • Fix: The resize later wat not not updating the last height. So resize later stopped working at some configurations.

Version 7.5.1

  • New: $onload_scroll_top does now support "iframe" as setting. The page does then scroll to the top of the iframe and not of the page.
  • New: The delay of the resize of the external workaround does now also delay the modification of the css as most of the time the elements that should be modified also are then also loaded dynamically
  • New: Improved the documentation of change link targets that also forms can be changed!
  • Fix: Not all IE versions (<= 11) do support default method values. So e.g. even auto height does fail! This was introduced in version 7.5. So please update if you use 7.5! Now the code is rewritten to support older IE versions as well.
  • Fix: The resize delay in the external workaround does not try to measure height and width before the delay anymore which can lead to wrong messages in the js console.
  • Fix: The resize delay in the external workaround is now added to the first resize on element resize call.
  • Fix: AUTH_KEY is now set to AUTH_KEY_MISSING if it is not set in wp-config
  • Fix: in the standalone version the browser detection a wordpress function was used that was not mapped. Now the normal php function Worppress also uses is used.

Version 7.5

  • New: Added nice icons to the menu and the editor button
  • New: The editor button does now support ALL settings. By default this is now securitykey,src,width,height.
  • New: Show iframe in layer can now unload the iframe when closed. So does stop then. If not unloaded it is now not loaded again! Before it was nut unloaded but on reopen loaded again! See show_iframe_as_layer_keep_content. Default is true (Pro)
  • New: Show iframe as layer does now support the loading icon (Pro)
  • New: Show iframe as layer does now support "hide content until loaded" (Pro)
  • New: Show iframe as layer background has now a pointer to make clear that the layer closes if clicked.
  • New: parent_content_css was added for the pro version. This gives you additional options when you modify the parent and you don't want to create an external css file for this!
  • New: If element_to_measure cannot be found we show an error message in the console log.
  • New: If resize_on_element_resize cannot be found we show an error message in the console log.
  • New: Improved quickstart guide and improved documentation on the basic tab.
  • New: The shortcode generator is now available for the free version also. New: standalone version js was upgraded to 7.5 as well. (Pro)
  • New: Browscap version 6023 lite 04 May 2017 is now included. (Pro)
  • New: A modified version of php-browser-detection 3.2 is now used which does now also auto update browsecap.ini. Also os (operating system) can now be used. Like Linux, Android, Win7, Win8, WIN10 ....
  • New: "Show part of an iframe" also supports media queries for the basic setup. Demo 55 shows how this works.
  • New: Added an additional hint to use the external workaround if auto height with the same domain does not work.
  • New: Unique class for each viewport. This also enables to e.g. enable scrollbars, media queries... to other viewports. See example 3
  • New: Improved the add_iframe_url_as_param_prefix setting. Additional checks was added for https. So switching from http to https and using the old bookmarks without the s| still works.
  • New: Add to docu that inactive for the editor is o.k. and if is does not work create/edit the files manually
  • New: include_scripts_in_content=true. This is only needed in the special case if you use the page with content only (like using the plugin "Show Content Only" with "Content + Styles" mode). Then ai.js is directly rendered before the iframe. See demo wrapped auto height.
  • Fix: Chrome is now detected by the browser detection again.
  • Fix: Viewports in "Show only a part of the iframe" where not working because of a change in 7.4.1. Now it works fine again.
  • Fix: resize_on_ajax_jquery was set to false as default if disabled and not to true. This causes that in the shortcode generator was always showing resize_on_ajax_jquery="false"
  • Fix: The resize script was included in 7.4.2 to ai_external.js directly. The dead code that was adding the script dynamically to ai_external.js was removed.
  • Fix: In expert mode the src is now also hidden completely.
  • Fix: Invalid settings for dataPostMessage are now detected and printed to the log.
  • Fix: Documentation of debugPostMessage, usePostMessage, additional_css_file_iframe was added/fixed

Version 7.4.3

  • Fix: iframe_redirect_url was brocken in 7.4.2 because of a missing ).

Version 7.4.2

  • New: The resize script is now direclty added to the ai_external.js. Chrome does show a warning now if js files are loaded internaly with document.write and this is now not done anymore. Also make sure you load jQuery manually in your pages as ai_external.js does also load jQery this way!
  • New: iframe_redirect_url does now support that only in case no ? is found in the iframe_redirect_url the parameters of the iframe are added again.
  • New: Enhanced the documentation for iframe_redirect_url
  • New: Support for WordPress 4.7.4
  • Fix: was addd with a ? too much to iframe_redirect_url
  • Fix: a couple of settings where not enabled/disabled properly when main elements where toggled. Now also the defaults are set properly everywhere.

Version 7.4.1

  • New: Documentation for ai_config_switcher_template was added to the "external workaround" tab.
  • New: Resize on element resize does also trigger the modification of the iframe again. This makes is possible that stuff loaded by e.g. ajax can also be changed!
  • New: "Show only a part of the iframe" css settings for the iframe do now use !important at the styles for the iframe to make sure that iframe settings e.g. from the theme like iframe { width:100%; } or other plugins that try to resize iframes dynamically will not kill this feature
  • New: z-index for iframe in a layer was increased to 100001-100003 to stay over the wp-admin bar!
  • New: iframe in layer background layer is now inserted at a different location in the dom to support more themes.
  • New: Support for WordPress 4.7.3
  • New: Standalone version was updated to the lastest version + postMessage is now default there too.
  • Fix: Edit/view of files in the custom folder was not working anymore because of a WP change. Now this works again. The editor shows (inactive) as this files are in a folder with no active plugin directly.
  • Fix: Added missing px settings at a css style for "Show only a part of the iframe"
  • Fix: iframe in a layer backgroud div is now added to a diffent position in the dom to be more flexible with other themes tha also defines z-indexes.

Version 7.4

  • New: New installations get postMessage communication as default as only 0.2% of all used browsers (IE <= 8) do not support this! When the project was started this was almost 20%!
  • New: Improved documentation of the external workaround tab.
  • New: "Hide part of an iframe" is now also included to the area selector.
  • New: "Hide part of an iframe" has now an extra section in the config.
  • New: If we have a wrapper div we set this as default element to measure. This avoids problems if dynamically other elements are added by other scripts!
  • New: default element can be set on the external workaround tab and not only before the ai_external.js
  • New: Warning is shown in the log if the element cannot be measured
  • New: Add better support for element to measure -> getbyid -> jQuery...
  • New: Warning is shown when id starts with a number
  • New: Seems some seo tools do render the shortcode in the administration. This can cause that the whole administration is hidden if hide_content_until_iframe_color is set. Therefore  if wp-admin is found in the url the following parameters are disabled: hide_page_until_loaded, hide_page_until_loaded_external=,hide_content_until_iframe_color to avoid this problem.
  • New: New help section postMessage comunication vs. iframe
  • Fix: The reserved words link in URL forward parameters is now working
  • Fix: add a ; automatically after the style to avoid configuration errors

Version 7.3

  • New: You can define elements in the external workaround post message solution that are read from the remote iframe and added a element in the page. This enables you to include content directly if you simply hide the iframe! This is like include content directly with even more power then the one for the same domain! See the example how cool this works: example 52
  • New: Support of the external workaround when you include https pages into http pages! See example 53
  • New: postMessages from non advanced iframe sources can now be used and converted. See ai_post_message_converter_template.js how this works. Enable use_post_message="debug" to check if a remote page does send messages you can use!
  • New: show_iframe_as_layer_full has a new option: "original". Than the max size of the layer is the given size of the iframe. See example 54
  • New: The layer is now closed also if you click anywhere outside the iframe. See example 54
  • New: Documentation was improved for many settings.
  • New: The accordeon menu is now only on the advanced tab.
  • New: Help topics where all moved to the help tab.
  • New: jQuery help is available for everyone.
  • New: php 7 compatible
  • New: Placeholders are removed if not resolved.
  • New: At many placeholders your can now define default values if the value can not be resolved. See example 49
  • New: Load a config file depending on a given parameter in the url. see js/ai_config_switcher_template.js and the documentation inside - makes it possible to use one page with different configurations!
  • New: enable_external_height_workaround has a new state: External. This is now the default as in the ai_external.js auto height is now set to true as most people who use the external workaround use this as default. true does still enable this setting in the ai_external.js but also disables all settings which do not work on the same domain. So if you use several iframes with the external workaround and the same domain you should set this setting to External and set enable_external_height_workaround="true" in the short code for full flexibility.
  • New: A warning is now shown if you use the external workaround without post communication and an https iframe is used in a http page.
  • New: hide part of the iframe element has now an id. This makes it possible to add e.g. an additional stylesheet with media queries to change the size depending on the browser solution. See: example 50
  • New: postMessage is now in a small extra box to make this setting more visual.
  • New: Browscap version 6017 lite September 22, 2016 is now included.
  • New: Support for WordPress 4.6.1
  • Fix: Search was always hiding elements on the external tab in the sub domain section.

Version 7.2

  • New: {timestamp} can be used in the src. It adds a timestamp which can be used to avoid caching of iframes.
  • New: element_to_measure is now available on the external workaround tab directly-> Additional height
  • New: With post message you can now mix https and http in the external workaround.
  • Fix: Resize later on the external workaround is now working again.
  • Fix: Some themes have iframe hidden with opacity:0 and visibility:hidden. I now set this for the given iframe that the iframe is visible.
  • Fix: Additional height fields are only allowing numbers without a unit.
  • Fix: Improved documentation

Version 7.1

  • New: "Show only a part of an iframe" does now also support zoom and scrollbars. See for a working example. (Pro)
  • New: "Show only a part of an iframe" does now also support zoom and the loading indicator. See for a working example. (Pro)
  • New: "Hide part of an iframe" supports now a bottom/right option e.g. hide_part_of_iframe="b34,r9,100%,85,#ffffff". See for a working example
  • New: "Hide part of an iframe" supports now the include of html and in there also the support of shortcodes. See for a working example
  • New: window.postMessage is now also supported as communication channel to send the needed data from the iframe to the parent for the external workaround.
  • New: Support for WP multi sites if only the domain does differ between the sites. Check the "Support WP multisite" parameter on the "External workaround" tab. (Pro)
  • New: Check the shortcode! You can now enable on the introduction tab that the shortcode is showing an error message if unknown attributes are used.
  • New: Layer files have now the placeholder {src}. This can be used to e.g. create a "Go to the page" link. (Pro)
  • New: The orientationchange event is now triggering a recalculate of the iframe. So e.g. auto height is done again if you rotate your ipad.
  • New: Browscap version 6013 lite 15th Mar 2016 is now included. (Pro)
  • New: Support for WordPress 4.5
  • Fix: Replaced depricated get_currentuserinfo() with wp_get_current_user()
  • Fix: The external workaround config with ?config_id=example was looking in the old place of the main plugin directory for the config files. But they moved to the advanced-iframe-custom folder and now the ai_external.js is loading the files from there. Please save the config once that the path is updated.
  • Fix: browser detection documentation was wrong: tablets -> tablet (Pro)
  • Fix: The hardcoded px was removed at "show only a part of the iframe" show_part_of_iframe_width and show_part_of_iframe_height. If you now specify % e.g. 100% and not 100%px is rendered (but browsers treated 100%px as 100% anyway)

Version 7.0.3

  • New: Improved the documentation of the external workaround and added 2 new FAQs.
  • Fix: printError was not defined for the site. If the ai_external.js can not be saved the plugin fails. Now a message is shown properly.

Version 7.0.2

  • New: Support of document.domain. Sub domains can than be configured like local domains. See the new section in the external workaround section.
  • New: The documentation of the external workaround was improved. A new step how to use the external workaround was added.
  • New: Browscap version 6011 lite 24th Dec 2015 is now included.
  • Fix: The display of external file where improved. Too long file names behaved strange before.
  • Fix: When creating/removing files the correct tab is now selected again.
  • Fix: The marker of the top tabs when a filtering was done was marking the wrong tabs when the introduction tab is the last tab.
  • Fix: External file list where not hidden during filtering

Version 7.0.1

  • New: New section "Open iframe in layer"
  • New: Search filter does now highlight the tab headers where findings are.
  • Fix: Create and remove of layer files where creating still the older header_*.html files. Now layer_*.html files are created/removed how they should.

Version 7.0

Version 6.5.4

  • Fix: include_url was broken. Now it works fine again.

Version 6.5.3

  • New: WordPress 4.3 is supported
  • Fix: https iframe on https did show an error message which is wrong. Now the message only is shown if http pages are included to https pages.

Version 6.5.2

  • Fix: WordPress updates where not shown because of a missing return value. Now only the ones for advanced iframe are blocked as it should be.

Version 6.5.1

  • New: WordPress 4.2.4 is supported
  • Fix: An anonymous function was used which is supported since php 5.3. But older php versions failed in the administration. Now the "old" way is used and the plugin is now compatible with older php versions again.

Version 6.5

  • New: Tab navigation in the administration.
  • New: The browser detection is now supporting "browser" and "desktop". (Pro)
  • New: include_html was added which does write the given string directly instead an iframe. This is helpful e.g. for a fallback text/link when the browser detection is used and a device is detected where your content does not work or should not be shown. Now you can print a message or display an image there. (Pro)
  • New: Browscap version 6005 lite 7th June 2016 is now included. It is much smaller than the previous version which had a lot of overhead which where not needed here. (Pro)
  • New: A button for full screen iframes was added it does set all the required styles and settings for a fullscreen iframe (pro).
  • New: hide_content_until_iframe_color was added. This hides the parent content with the given color until the iframe is loaded. This is very useful if you want to use a fullscreen iframe and the parent content should never be shown (pro).
  • New: css calc() support for width and height. This makes it possible to do calculations like 100%-200px at the height and the width. See for browser support (Pro).
  • New: Added a few new sections for better usability of the administation: "Zoom", "Lazy load" and "Url parameters"
  • New: Above the editor a button next to the media button was added to include a basic iframe shortcode. For later versions it is planned that the attributes for the button can be specified in the config.
  • New: When zoom is used the browser detection is needed. This does need quite some memory. A temp file is now created before the check and removed after the check. So if the check does now fail because of a memory crash this file is not deleted and the script does not do the check. You only loose the IE8 support for zoom. The temp file is advanced-iframe-custom/browser-check-failed.txt and if you get more memory you can remove this file to enable the check again (Pro).
  • New: A message is shown if you include a http iframe to a https page as many major browsers do block this. Therefore it does not make sense to use this setup.
  • New: The ai_external.js has now a timestamp. There you can then see if you use the latest version or maybe see a cached one!
  • New: The resize on element resize script is overwritten if jQuery is loaded after the ai_external.js script again. Now a warning is shown (Pro)
  • New: user info and user meta of the src attribute have now an additional help which settings are available (Pro)
  • New: The generate shortcode button does now only generate the include_* values if they are set as the other settings are ignored than.
  • Fix: show_part_of_iframe_x and show_part_of_iframe_y are now always added to the generated iframe code if show_part_of_iframe is enabled (Pro).
  • Fix: Added overflow:auto to the wrapper div. This fixed the problem returning a height of 0 of the wrapper element in chrome if the elements inside are floating:
  • Fix: The % info text of the area selector was improved.
  • Fix: [ and ] in the security error message where not html encoded. This lead to a strange error message if another plugin is wrapped around and calling do_shortcode.
  • Fix: The max-width for the surrounding div when responsive iframes are enabled where missing a ; which leads to a invalid css value.
  • Fix: Added missing links in the documentation at the responsive iframe settings.
  • Fix: auto_zoom_by_ratio was missing in the generated shortcode.
  • Fix: position:absolute is now optional (use_zoom_absolute_fix = "true") as it seems is also causes problems at other layouts.

Version 6.4.1

  • New: Above the editor a button next to the media button was added to include a basic iframe shortcode. For later versions it is planned that the attributes for the button can be specified in the config.
  • New: When zoom is used the browser detection is needed. This does need a lot of memory. A temp file is now created before the check and removed after the check. So if the check does now fail because of a memory crash this file is not deleted and the script does not do the check. You only loose the IE8 support for zoom. The temp file is advanced-iframe-custom/browser-check-failed.txt and if you get mory memory you can remove this file to enable the check again.
  • New: A message is shown if you include a http iframe to a https page as many major browsers do block this. Therefore it does not make sense to use this setup.
  • New: The ai_external.js has now a timestamp. There you can then see if you use the latest version or maybe see a cached one!
  • New: The resize on element resize script is overwritten if jQuery is loaded after the ai_external.js script again. Now a warning is shown.
  • Fix: show_part_of_iframe_x and show_part_of_iframe_y are now always added to the generated iframe code if show_part_of_iframe is enabled.
  • Fix: Added overflow:auto to the wrapper div. This fixed the problem returning a height of 0 of the wrapper element in chrome if the elements inside are floating:
  • Fix: The % info text of the area selector was improved.
  • Fix: [ and ] in the security error message where not html encoded. This lead to a strange error message if another plugin is wrapped around and calling do_shortcode.
  • Fix: The max-width for the sourounding div when responsive iframes are enabled where missing a ; which leads to a invalid css value.

Version 6.4

  • New: The first video tutorial is avilable:
  • New: Links to external pages can be opened in a simple fullscreen lightbox (Pro). See example 32 on
  • New: The iframe url can be returned back to parent and added to the url. This url does than also load this iframe content again. Supported on the same domain and with the external workaround (Pro). See
  • New: hide_part_of_iframe does now support links! Therefore it is now possible to add areas with custom links. See the updated demo 8 on
  • New: hide_part_of_iframe elements are hidden until the page is loaded to avoid that this blocks are shown without the iframe. this is only enabled if hide until loaded is enabled!
  • New: Support for pdfs inside the iframe. If you include a pdf google doc is used to include the pdf. This solution looks the same on all browsers. If you want to use the native pdf renderer of the browser/your system add NATIVE: before the url. Like NATIVE:
  • New: All attributes from the user info and the user meta are available as replace parameters in the src attribute (Pro).
  • New: Extract parts from the parent url and adds it to the iframe url. See urlpath at the description of "Url"
  • New: Parameters from POST requests are alse extracted. If GET and POST are given the GET parameter is used.
  • New: Add css directly to an iframe on the same domain (Pro). This does than support !important also.
  • New: Add css and js files to the iframe for the same domain or with the external workaround (Pro)
  • New: Custom css and js files can be created/viewed/edited/removed in the administration.
  • New: Marker css classes are added to the body and the first level of the elements in the iframe: add_css_class_iframe (Pro). It is than now possible to apply different changes to different pages in the iframe.
  • New: You can now reload the iframe in a certain interval: reload_interval (Pro)
  • New: A filter for the settings does now exist. Simply type for a search term and only the matching settings are shown.
  • New: An icon is now shown which settings are saved to the ai_external.js
  • New: An icon is now shown where a special demo does exist.
  • New: The dependeny to jQuery is now optional. This avoids double loading of jQuery if e.g. your theme does load jQuery not the wordpress way.
  • New: ai.js is only loaded if the advanced_iframe shortcode is on the page. "Include ai.js in the footer" has to be set to true to enable this.
  • New: Auto zoom by ratio if the height cannot be measured but the ratio is known (Pro).
  • New allowfullscreen is now also available in the free version as this is a default html element.
  • New: Settings link on the plugin page
  • New: External history page
  • New: Improved documentation
  • New: Tested successfully with WordPress 4.2.2
  • Fix: The plugin does now work fine with the royal theme from codecanyon again! The theme and the plugin where using the same variable for the options. Now a unique variable name is used.
  • Fix: Changed && in the Javascript to two if statements to avoid problems with wptexturize and other page optimizing plugins
  • Fix: Browser detection for mobile and android was not working because in the detection file e.g. isMobileDevice was changed to ismobiledevice. Now this works fine again ;).
  • Fix: Show one element on the local domain was fixed.
  • Fix: aiResizeIframeHeightById has now a a try catch to detect configuration errors.
  • Fix: position:absolute is added to the iframe at zoom to fix issues on some pages.

Version 6.3.5 (free version only)

  • Testet with 4.1.2
  • Fix: Layout fix in the administration of the free version only.

Version 6.3.4

  • Fix: Advanced iframe was not working together with the Royal theme as they where using a same variable name. Now they work fine together.

Version 6.3.3

  • Fix: Measuring of width does now check if it is > 1 as some full responsive sites do return such a value that is not valid.

Version 6.3.2

  • Fix: Measuring of width does now check if it is > as some full responsive sites do return such a value that is not valid.

Version 6.3.1

  • New: index.htm files where added to all directories to prevent directory listings if you server does allow this.
  • Fix: Standalone version was working fine in the standalone folder. The internal path handling was improved to make is easier to include it anywhere. (Pro)
  • Fix: !important was removed for hide elements because this was is not supported in jQuery.
  • Fix: All iframe attributes are trimmed now. This avoids errors because of spaces e.g. at the beginning of the src.
  • Fix: Better error message if the security key was not found because of wrong quotes.
  • Fix: > could not be used in the shortcode for jQuery patterns. You can now use ## which internaly converted to >
  • Fix: Save button was jumping when you try to click it on some browser. The css is fixed now.
  • Fix: Menu anchor fixed
  • Fix: Save caused a php warning when normal save buttons where used.

Version 6.3

  • New: Standalone version. See standalone/readme.html for details (Pro)
  • New: Config files for the external workaround. See example 7 (Pro)
  • New: Create, view, edit and remove of config files added (Pro)
  • New: hide elements does now set !important when settings display:none as some themes have display:block !important somewhere.
  • New: Internal version check as WordPress only checks the free version. (Pro)
  • New: Help for Advanced iFrame Pro Widget added. (Pro)
  • New: Reset to default settings was added. (Pro)
  • New: Settings are shown in the main menu now also. Can be turned off in the config.
  • New: Element_to_measure is now also supported when resized later or the width is used. (Pro)
  • New: "Hide until loaded" does now use css instead of jQuery to hide the iframe.
  • New: strtolower was added when css styles are applyed on the same domain. This fixes problems if e.g. important is written Important which is invalid!
  • New: Improved documentation
  • New: Hide elements is now used with !important because depending on your css the elements are not hidden otherwise. Make sure to save the config as this is also implemented for the external workaround.
  • New: Automatic resize 500 ms later in the external workaround if the measured height is > 10.000 as this is either an error or a huge page where the delay does not matter. (Pro)
  • Fix: Resize is only done if the detected height is > 10. Everything below is expected that the height is not measured correctly. (Pro)
  • Fix: Many typos fixed
  • Fix: show_one_element_only has # already set on the same domain. The # was removed as in the external workaround the # was not set.
  • Fix: hide_page_until_loaded_external is now not connected to hide_page_until_loaded anymore. Now hide_page_until_loaded has be set to false if hide_page_until_loaded_external is used. But the old way has caused that misconfguration was showing a blank page.

Version 6.2

  • New: {adminemail} is available as replace parameters in the src attribute (Pro).
  • Fix: modifyOnLoad... was not always rendered because show_part_of_iframe_next_viewports_hide was not checked properly
  • Fix: The browser detection is now only used when the browser detection or zoom is used. browser detection needs quite some memory. So this reduces the memory usage of the plugin if these features are not used (Pro).

Version 6.1

  • New {userid}, {username}, {useremail} are available as replace parameters in the src attribute (Pro).
  • Fix: {} in the src field could not be saved in the administration because of WordPress esc_url. Now this works there too. It was always working in the shortcode attribute src.
  • Fix: In the external workaround the resizeLater function had a hardcoded id (advanced_iframe). When using a different one the callback with the size failed.
  • Fix: Browser detection needs at least php 5.3. Now a warning is shown when you don't have at least php 5.3 (Pro).
  • Fix: Plugin needed at least php 5.3 because the browser detection was used always to detect IE8. Now this check is only done if php 5.3 is available (Pro).
  • Fix: ?version=<internal version> it attached to js and css of the administration like in the site.

Version 6.0

  • New: Auto zoom. This feature does automatically calculates the needed zoom factor to fit the iframe page into the parent page. Works on the same and with the external workaround. Shortcode auto_zoom. See example 29-31 (Pro).
  • New: Lazy load with hidden elements. So this is a very good alternative for hidden tabs. See example 28 (Pro).
  • New: You can define the element that should trigger manual lazy load. See example 25 (Pro).
  • New: Static save button in a transparent footer (Pro).
  • New: Support for an alternative shortcode. So you can use e.g. "iframe" also if you want to switch/upgrade from iframe to advanced iframe pro. Please note: If you enable this, the security key is NOT checked anymore (Pro).
  • New: Support for the BBCode [iframe]url[/iframe] (Pro).
  • New: Automatic resize 500 ms later in the external workaround if the measured height is < 10 (Pro)
  • New: You can define the element you want to measure + a offset for fix content. This is sometimes needed for some themes where e.g. chrome returns 0 as height (Pro).
  • New: You can set additional styles to the wrapper div like overflow:auto with additional_styles_wrapper_div in the external workaround (Pro).
  • New: Show only one element does now also clones attached event listeners (Pro).
  • New: Browser detection now supports tablets, android, androidtablet and browsecap version 5033, 23 Sep 2014 was added (Pro).
  • Fix: transparent border of the wrapper div removed as it is not needed anymore.
  • Fix: Improved documentation for hide_part_of_iframe how to make a read only iframe (Pro).
  • Fix: $include_scripts_in_footer and $add_css_class_parent or store_height_in_cookie could cause a config error. You need to set include_scripts_in_footer to false if you want to use add_css_class_parent or store_height_in_cookie. Now this is added to the documentation and also the script does not fail anymore if you do set this wrong.
  • Fix: Added stripcslashes() when reading parameters when magic_quotes_gpc is on.
  • Fix: Removed the detection at resize if the iframe width has changed because at auto zoom the detection was wrong (Pro).

Version 5.10

  • New: Resize on element resize is now supported. This enables you to resize the iframe if e.g. the content of the iframe changes because of div which expands. This feature is more powerfull and easier to configure than the "Resize on click/Ajax" setting and is also supported for the external workaround (Pro)
  • New: Trigger loading manually (enable_lazy_load_manual) added. Now lazy loaded iframes can be shown manually. See the lazy load demo for an example. (Pro)
  • New: Write css as script directly to the header. See the description (Write css directly) of the external workaround for details. (Pro)
  • New: Add a css style to each parent element of the iframe (add_css_class_parent) to be able to find and modify the parent even when no styles exist or classes are not used exclusively. (Pro)
  • New: Support of shortcodes in the src attribute. Please note. Needed encodings have to be done in the shortcode! (Pro)
  • New: Dynamic src parameters. You can define placeholders for the site, host and port. This is useful if you e.g. have a multidomain install where the host is dynamic (Pro)
  • New: Add the id to the url of the iframe (pass_id_by_url). This feature adds the id of the iframe to the iframe url. The id is than extracted on the iframe and used as value for the callback to find the right iframe on the parent side.add_css_class_parent (Pro)
  • New: additional_js_iframe - The ai_external.js can also write additional Javscript. This is loaded at the end of ai_external.js. The advantage using this is that the Javascript is only loaded if the page is inside the iframe and is not loaded when accessed directly. (Pro)
  • New: additional_js_file_iframe - The ai_external.js can also load an additional Javascript file. This is loaded at the end of ai_external.js. The advantage using this is that the file is only loaded if the page is inside the iframe and is not loaded when accessed directly. Please note that the file is loaded asynchronously. (Pro)
  • New: URL forward parameters (url_forward_parameter) does now also support ALL as setting. This does simply add all incoming parameters to the iframe url.
  • New: Scripts can now be loaded to the footer (include_scripts_in_footer). This is now default.
  • New: Height is only sent by the external workaround when the height does change and not everytime a configured event is triggered.
  • New: Browscap version 5030 lite 17th June 2014 is now included. (Pro)
  • Fix: All css/Javascript are now loaded to header/footer for all WordPress versions the wordpress way
  • Fix: Improved documentation.

Version 5.9

  • New: Lazy load of iframes with treshold and fadein. Iframes can be loaded after the parent is done or the iframe is shown in the viewport! (Pro)
  • New: Better input validation. Avoids configuration errors.
  • New: WordPress 3.9.1 is supported
  • New: An alternative to the eval function is now used in Javascript to improve security and speed.
  • New: Browscap version 5029 lite 8th May 2014 is now included. (Pro)
  • Fix: Code improvements found with the plugin checker plugin
  • Fix: Hidden tabs was not working because of the responsive iframe feature. Now both do work independant again. (Pro)
  • Fix: Improved shortcode generator (Pro)
  • Fix: Width is now measured without the extra space (which was 0 by default anyway ;))
  • Fix: Whitelist for params was extended by :,? and &
  • Fix: Wrong default for Set Iframe height by ratio (iframe_height_ratio) was fixed (Pro)
  • Fix: loader icon and responsive iframe do now work together! (Pro)

Version 5.8

  • New: Shortcode generator! In the administration you can now generate a default independent shortcode from the current settings.(Pro)
  • New: Set Iframe height by ratio (iframe_height_ratio). This can be used to make resonsive iframes where the content has a certain ratio like swf's, videos... (Pro)
  • New: WordPress 3.9 is supported
  • New: map_parameter_to_url does now also support that an url can be passed to the iframe directly. So would open inside the iframe. (Pro)
  • New: Browscap version 5027 lite 24th Apr 2014 is now included. (Pro)
  • Fix: Documentation improvements.

Version 5.7

  • New: html attribute allowfullscreen is now supported.
  • New: Zoom and auto height with the external workaround with several iframes on the same page is now supported.
  • New: Tested with WordPress 3.8.2
  • Fix: Advanced iframe pro can now be used together with php-browser-detection. Before using both where leading to a function redeclaration.
  • Fix: Functions of the old and new workaround had the same name with different parameters. Now this functions have different names and also work properly with several iframes on the same page.

Version 5.6

  • New: Support that the height of responsive iframes is automatically set to the new content height. This means that if you resize the parent page and the iframe width changes, the height of the iframe is adopted automatically like when loaded the first time! Please note that both pages (parent and iframe page) needs to be responsive. Please also read the blog entry about responsive iframes. (Pro)
  • New: Read-only iframes: hide_part_of_iframe does now support also %. This means together with color "transparent" you can create read-only iframes! See the pro demo. (Pro)
  • New: No output (except conguration errors) is done in the script function anymore. Everything is returned as return value.
  • New: Added updated browsecap.ini: 5024 (2nd March 2014) from
  • Fix: Improved documentation in the administration.
  • Fix: Loader is now displayed better for small iframes. See example 2.
  • Fix: additional_css and additional_js are now again supported as shortcode attribute if WordPress >= 3.3. Before WP 3.3 you can only set this feature in the administration.

= 5.5 =
- New: Support to resize to content height for iframes on hidden tabs (Pro). Works with e.g. Tabby Responsive Tabs and Post UI Tabs. This can also be used for simple hidden divs which opens e.g. on a mouse click or accordeon menus. Please read the documentation in the settings for details.
- New: Loading of css and Javascript in the admin section is it only loaded when needed.
- New: Loading of the additional css and Javascript in the page are also only loaded when you use WordPress >= 3.3. Before the files are always included to all pages because wordpress api does not allow this differently.
- New: Added updated browsecap.ini: 5023 (2nd Feb 2014)
- Fix: Loader css was always written even if not configured. Now only when this feature is enabled.
- Fix: renamed internally is_browser to ai_is_browser to avoid problems when e.g. a theme does define is_ie()...
- Fix: Area selector does now look good again.

= 5.4 =
- New: The default security key is now based on the AUTH_KEY of WordPress and the current time. Please change the default key to your own to increase security.
- New: Zoom of iframe content: This feature is supported for the following browsers: IE8-11, Firefox, Chrome, Safari, Opera. Older versions of IE are not supported. Please test all the browsers you want to support with your page because not all pages do look good in a zoomed mode! This feature is also part of the demo. So you can test your browsers there! (Pro)
- New: iframe loading icon. You can now show a loding icon while the iframe is loaded. If you use the "hide until loaded feature" your users does see that something is happening. You can use your own image (loader.gif) with a size of 66x66 px by replacing the one in the img folder (Pro).
- New: Accordeon menu (Pro).
- New: Map parameter/value pairs to urls. You can specify parameter/value/url tripples which are used the following way. If the parent has ?parameter=value than the url of the setting is used as src for the iframe (Pro).
- New: Reading of browser detection file is cached (Pro).
- New: Improved padding and better handling in expert mode (Pro)
- New: Input text fields have now dynamic sizes. So if you enlage the screen they should always fit. Textfields with numbers only are now much shorter as the numbers there never get longer.
- Fix: Administration was not shown properly on MAC.
- Fix: Expert mode description fixed (Pro)
- Fix: Error message when saving a special setting was fixed

= 5.3 =
- New: Browser detection added. You can now specify browser specific iframes. This is important especially for the "Show only part of the iframe" where browser differences of a few pixels can matter. Also mobile, iphone, ipad can be detected. A modified version of php-browser-detection is used which uses as data! Important: Read the documentation at "Browser detection" in the plugin how to use this! (Pro)
- New: Change link targets on the parent that they open inside the iframe. Shortcode: change_parent_links_target (Pro)
- New: Change link targets inside the iframe if the iframe page is on the same domain or if you can use the external workaround. Shortcodes: change_iframe_links, change_iframe_links_target (Pro)
- New: Redirect direct access of the iframe page to the parent page. Does also add existing parameter to the parent url (Pro)
- New: url forward parameter mapping. WordPress has many reserved word in the url so they cannot be used. Now parameters can be mapped to a different one in the confiuration. so e.g. name is e.g. a reserved word an cannot be used. using ainame|name in the configuration will forward 'ainame=hallo' as 'name=hallo' to the iframe (Pro).
- New: "Show only a part of an iframe" has now a new setting $show_part_of_iframe_style where a style can be set for e.g. a border (Pro).
- New: Integrated jQuery help (Pro)
- New: Improved error messages
- Fix: Area selector does now select 'Yes' at the "Show only part of the iframe" when data is chosen (Pro).
- Fix: Area selector does now enable all disabled radio elements when data is chosen (Pro).
- Fix: Additional spaces are removed when used in jQuery attributes
- Fix: Typos in the descriptions where fixed.
- Fix: ereg was replaced by preg_match to avoid deprecated warnings with php < 5.3

= 5.2 =
- New: New feature "Hide a part of the iframe". Extra layers can be placed over the iframe. This enables you to e.g. hide a logo or even place your own logo on an iframe. See the pro demo for examples (Pro)
- New: Try catch is now used at features which could fail when features for the same domain are used on external domains. Now the exceptions are catched and logged to the console.
- New: A dynamic auto id is now only generated if several iframes are detected on one page.
- New: Tested with WordPress 3.8
- New: Improved documentation
- Fix: At grayed out radios only the first radio box was grayed out - now all are disabled

= 5.1 =
- New: vertical and/or horizontal scrollbars in the pro feature "Show only part of the iframe" solution are possible. This makes it possible to include e.g. a whole inner content with scrollbars but without showing e.g. the header of the external page. See the pro version for a working example.
- New: Resize can now be delayed. This helps if the onload event is fired but the page is not completely build. This feature is also possible in the external workaround of the pro version.
- New: Administration options are grayed out if not available because of another setting.
- New: Expert mode. If you enable this the description is only shown if you click on the setting. You see more settings at once but only one description at once. Use this if you are common with the settings.
- New: id is now set automatically if a src is set in the shortcode but no id is set. This avoids problems if people forgets to set the id ;).
- Fix: The external workaround does now hide the html element until all modifications are done. Before only the body was hidden which was showing the background in some browsers. If you still see a background for a very short time please look into ai_external.template.js - line 53

= 5.0.1 =
- New: Support of the external height workaround when the iframe is already in an iframe. Now the correct iframe is used and not the top one anymore.
- Removed not used file.

= 5.0 =
- New: 'Show only a part of the iframe' has now a graphical area selector where yu can simply select the area you want to show with the mouse! (Pro)
- New: Improved external workaround: It can now be configured to work with different settings for different iframes
- New: Improved documentation of the external workaround
- New: Improved external workaround: "Modify the content of the iframe if the iframe page is on the same domain" is now supported in the workaround and can be configured for different domains (Pro).
- New: Improved external workaround: The iframe can be hidden until al external modifications are done!
- New: Improved external workaround: The same page can now be included into different wordpress installations. Only one configration is allowed here. For multiple configurations you need the onclude the different scripts depending on the parent with php.
- New: Tested with WordPress 3.7.1
- New: Fully compatible with php >= 5.3
- New: "Scroll to top" does now not need a workaround anymore and the setting was moved to a different section where it makes more sense.
- New: Whitelist for url foreward parameters. If the value does only contain parameters on the whitelist than the value is not encoded anymore. Whitelist: @a-zA-Z0-9À-ÖØ-öø-ÿ|)( minus and space.
- New: Support of the external workaround for IE7 and IE8
- New: Quickstart guide added to the administration page of advanced iframe pro.
- New: When the external workaround is set to true settings which only work on the same domain are disabled.
- New: Improved handling of the show_part_of_iframe_... feature. Not needed dependencies at configuration where removed. This enables more flexibility here! (Pro)
- Fix: show_part_of_iframe_x and show_part_of_iframe_y where switched. now show_part_of_iframe_x = left and show_part_of_iframe_y = top (Pro)
- Fix: n where removed from the code because some other plugins converted them to br which where adding unwanted empty lines.
- Fix: Hide elements until loaded is now again the last step of the onload values.
- Fix: em tags where replaced by p tags in the administration. Copying em tags where copying the em tags to the editor as well which could cause invalid shortcodes
- Fix: "Restart the viewports from the beginning after the last step": old shortcode was in the description show_part_of_iframe_do_update -> show_part_of_iframe_next_viewports_loop (Pro)

= 4.2 =
- New: Improved external workaround. The body in the wrapper is not copied as simple string anymore (This removes e.g jQuery stuff that is attached in the DOM) but a div object is created where the child notes of the body are attached to. Thanks to Jason.
- New: Improved external workaround. The wrapper div is now only rendered if needed.

= 4.1.1 =
- Fix: Hidden administration fields caused a notice when saving.

= 4.1 =
- New: New attribute use_shortcode_attributes_only. Enables not to use any of the defaults and only the settings specified as attributes.
- New: Fields could only be made empty by entering a space. Now simply removing the text does work again.
- Fix: minor fixes
- Fix: Code and documentation improvements

= 4.0.1 =
- Fix: Fixed a copy and paste error where wrong shortcodes where used in the documentation

= 4.0 =
- New: Pro version on
- New: Show only a part of an iframe - works on different domains! (Pro)
- New: Change the visible part of the iframe after each onload event (Pro)
- New: Open a new url after the last step (Pro)
- New: Open the iframe in a new tab or as parent after the last step (Pro)
- New: Widget. You can now include the shortcode also as widget (Pro)
- New: New attribute 'style'. You can now set any style directly at the iframe. The recommended way is to use a css file and the attribute class.

= 3.6 =
- New: Tested with WordPress 3.6
- New: Updated example file.

= 3.5 =
- New: The external workaround was rewritten. It does now work by only including a script to the iframe page.
- New: The resize of the external workaround does now also make the iframe smaller.
- New: The Javascript on the external page does only modifies the page if it is included in an iframe.
- New: advanced-iframe is now also possible instead of advanced_iframe as shortcode
- New: If you set scrolling to 'Not rendered' the attribute scrolling is not rendered to the iframe. This makes it possible to set this with css and make the scrollbar responsive as well.

= 3.4.3 =
- New: Added a section in the FAQ how to use the advanced iframe multiple times on one installation

= 3.4.2 =
- New: the style for the site is now inline because it was only one style. Now no extra css is loaded anymore.

= 3.4.1 =
- Fix: Url of the support page was not starting with http and therefore not working
- Fix: Url where checked with the sanizize functions of WordPress. This was too strict. Now esc_url() is used and stuff like %E5 does work as well in the url.

= 3.4 =
- New: Basic support for multiple advanced iframes on one page. All generated public Javascript functions have now the id included in the name. Cookies and additional_height are not supported yet because they are used as global variables in the external js file.
- New: additional_height has to be a number. px or % are now automatically removed to avoid Javascript errors.
- Fix: forewarded parameters are now urlencoded. e.g. keyword=gr%E5%E5sen is now passed properly.

= 3.3 =
- Fix: the height was not detected properly with firefox and some doctypes. Now a more advanced way to determine the height is used which works now fine for Firefox as well.

= 3.2 =
- New: Paid support. Because some settings are quite advenced I now also offer paid support.
- New: Iframe checker: Checks the headers if a page can be included into an iframe.
- New: Javascript onload solution hiding the iframe until the content is loaded.
- Fix: some shortcodes in the administration where not correct because of copy and paste.

= 3.1 =
- New: Javascript onload solution for resizing the iframe dynamically to the width of the content.
- New: Resize on AJAX events. Works for jQuery and direct XMLHttpRequest on the same domain.
- New: Resize on click. You can specify the elements and a timeout when the resize should happen.
- New: Scroll position is now saved and restored after the resize.
- Fix: iFrames are now also made smaller at content resize in all browsers

= 3.0 =
- A page or part of a page can now be embedded directly to the page with jQuery if the page is on the same domain. See the new section 'Include content directly'.
- Tested with WordPress 3.5.1

= 2.1 =
- Show only a specifiy part of the page in the iframe if the pages are on the same domain.

= 2.0.2 =
- Tested with WordPress 3.5

= 2.0.1 =
- Fix: The included footer was causing an Javascript error on non advanced iframe pages. Now I check if the function does exist.

= 2.0 =
- New: onload attribute added
- New: Javascript onload solution for scolling the parent page to the top.
- New: Javascript onload solution for resizing the iframe dynamically to the height of the content.
- New: Javascript solution for the scrolling and resizing that works cross domain as well.
- New: Hide elements/modify css modify speed was dramatically improved. The function is now not called only in the ready event of JQuery but also directly before the footer. This causes that you don't see the changes most of the time anymore!
- New: An additional css file can be added to the parent page.
- New: An additional Javascript file can be added to the parent page.
- New: Hide areas inside iframe if the pages are on the same domain.
- New: Modify css styles inside iframe if the pages are on the same domain to e.g. change the width of the content area.

= 1.5 =
Support for src values that are hotlinked by the editor.
Fixed the typo in the doumentation. in securitykey sometimes the r was missing

= 1.4 =
Documentation updated
New: id and name attribute added

= 1.3.2 =
Improved the help
Fix: css was not loaded because old css name was used

= 1.3.1 =
Fix: Improved error message if a &nbsp; is in the shortcode instead of a normal space.

= 1.3 =
Fix: content_id,content_styles,hide_elements was always used from the config even when a shortcode was given. Now the shortcode is used as well.

= 1.2 =
Fix: The src was not working in the shortcode. I missed to rename this parameter when making this plugin more generic.

= 1.1 =
Fix: The iframe was always printed first. Now it is printed exacly where the shortcode is inserted.

= 1.0 =
First version.