AnsweredAssumed Answered

WAB Splash widget does not work in an iframe

Question asked by geonb_bernie on Sep 22, 2016
Latest reply on Dec 15, 2016 by hr404

Although Esri provides guidance on embedding a WAB app in an iframe not all WAB widgets will work in an iframe.  Here are some details on problems we are having with the Splash widget:

 

I walked through the Javascript code for the Splash page widget.  The Splash widget is trying to get the application ID from the URL.  It does this when it first tries to open.  Unfortunately, the way it does this will not work for an application in an iframe.  I would consider it a defect in the function that ArcGIS uses to determine the URL where the widget is located.

 

The Splash widget’s “onOpen” function is ultimately calling a utility function to try to extract the application ID from the url:

 

      z.getAppIdFromUrl = function() {

                       var b = !0

                         , a = window.top.location.href;

 

A cross-domain site in a frame can’t access those values so the browser is denying it.  The utility function isn’t catching the error and behaving gracefully, so it just hangs.

 

You either need to not use the Splash widget, or contact Esri support and explain the issue to them, and see if it can be repaired or if there is a suggested alternative.  This getAppIdFromUrl() function should be putting a try/catch block around its attempt to read the HREF and if it fails it should be falling back to trying to get the appID from elsewhere.

 

So where does this leave me?  Any suggestions on how I can keep my WAB app in an iframe but also use the Splash widget?

 

Thanks,

Bernie.

Outcomes