Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
rbartley
Specialist II
Specialist II

GeoAnalytics maps in Iframes - IE11 issue

Hi everyone,

 

I am experiencing an issue with GeoAnalytics maps in my SingleIntegration API Iframe mashups.  I have an app with seven sheets, three of which feature one or more GeoAnalytics maps and I pre-load all of them into separate iframes in order to reduce the time taken to navigate between the sheets and then show/hide according to the selected sheets.  This works fine in Chrome, Firefox and Edge browsers, but in IE11, if I have more than one map sheet, it causes some of the sheets no to be displayed.  I have played with not pre-loading and emptying each iframe when navigating between sheets, but I still have the same issue (although I can display one more map sheet).

I have read some reports of memory leaks in IE11 and wonder if this is related.  Does anyone have any experience or advice?

 

Thanks in advance,

 

Richard

 

Labels (4)
5 Replies
KallePersson
Employee
Employee

Hi Richard,

Sorry for the slow response.

It sounds similar to an issue with the map extension in iframes that another customer reported to us recently, which I have started looking into for a fix.
If you check the size of the map canvas, does it have a width and/or height of 0?
In that case it is due to the map parent for some reason having a size of 0 when the map adds its canvas element to it, which makes it set its canvas to height/width 0 as well.

The map will notice that it doesn't fill its parent when drawing, so e.g. changing the selection should make it visible.

One way to force it to redraw externally is to call the qlik.resize() method. So a workaround for now could be to be to call resize so that it can redraw and resize itself. Maybe calling it via setTimeout in the iframe switching code so that the layout is complete when it runs.

Regards,
Kalle

rbartley
Specialist II
Specialist II
Author

Hi Kalle,

Thanks for your reply.  Unfortunately, I can't call qlik.resize() as I'm using the Single Integration (iframe) API, not the Capability API.

 

Regards,

 

Richard

KallePersson
Employee
Employee

Hi Richard,

Sorry about that. Here is a working workaround until we fix it:
Since the maps resize listener will cause it to redraw and thus resize itself you can trigger it by changing the size of the iframe after you switch to it, by e.g. increasing / decreasing its width or height by 1.

Something like this worked for me when testing (with jQuery):

iframe.show();
iframe.width(iframe.width() + 1); // or just a fix value, as long as it changes so the event is triggered

 You might also want to change the size in the opposite direction when hiding them, to reset.

Hope this works for you as well.

Regards,
Kalle

rbartley
Specialist II
Specialist II
Author

Hi Kalle,

 

Thanks for responding again.  I'll take a look at your proposal and update this post with my findings.

 

Regards,

 

Richard

KallePersson
Employee
Employee

Hi again, just realized that it should be enough for you to resize the iframe only once, since the map will already have a proper size after that. That is unless the iframes are expected to change in size when hidden.