Inserting a Confluence document in an inline frame

newbie-question

#1

Hi, I’m using Axure 10 right now and trying to use the inline frame of Axure to share documents with my teammates within the prototype.
I’ve tried Google docs and they’re working fine, but what I want to share this time is the Confluence(Atlassian) document.
I inserted the right share URL for the document but on the prototype, it says the access is denied.
I asked the Confluence community too, and the answer was the like below.
“The application or page you want to embed Confluence in will need to support the authorization that Confluence Cloud needs to let your users access the spaces and all the supporting javascript and CSS that Confluence uses to display things.”
Does Axure support that authorization? Is there a way to do so, or is it just impossible?


#2

In general, there are issues when trying to open some external URLs in an inline frame and the host server or web app does not support loading in anything other than a “main browser window” to prevent clickjacking and other hacking exploits. For example, YouTube prohibits this kind of direct loading unless you use their embed code.

  • Can you open your Confluence URL in a regular window (Open Link in Current Window) ?
    • If not, then I’d recommend sending an email to support@axure.com and describe this issue, asking if they have a solution or could provide the needed data and/or authorization stuff. Especially if no users in this forum have any solutions for you.

    • If yes, you might be able to get around this issue with this approach:

      • Create a blank page in your prototype, just for loading this URL
        • In this page’s Page Loaded event, create an Open Link in Current Window action, specifying your URL in the “external link” option
        • Specify the page width in STYLE: Page Dimensions to match that of your Inline Frame widget
      • Either specify “no target” for your Inline Frame by default, or point to another page/URL that does work. When you want to show your Confluence doc in your Inline Frame, just open the new page you created.
      • If you have a few other possible Confluence URLs to load, you can create a prototype page for each
      • If you have many other possible URLs and/or you don’t know all possible URLs (they are dynamically assigned/created/added), you could create a kind of “automated listener function” or “new URL handler” on this new blank page. Effectively, the idea is to assign your URL to a global variable from your “main page” (the one with the Inline Frame), and have the blank “Confluence” page detect this global variable change and load the new URL.
        • The “URL handler listener function” can be created on your blank page by making a dynamic panel (dp) with two states (both states can be empty)
        • Create a Loaded event for this dp with action of "Set Panel State of This to Next, wrap, repeat every 1000 ms (or however much of a potential lag you can accept for a “preloading” time. 1000 ms means this function will automatically listen for a new URL every 1 second --each time the dp changes states. 500 ms would be every half second. The less the lag the more drain on system resources. The longer the lag the more potential wait time to start the load in your inline frame.)
        • Create a Panel State Changed event with a conditional case like,
          If length of OnLoadVariable is greater than 0
          Open Link in Current Window : OnLoadVariable
          Set Variable Value OnLoadVariable to ""

I also found this on Confluence support site, which could help if you have local IT or Atlassian support:
https://confluence.atlassian.com/confkb/confluence-page-does-not-display-in-an-iframe-827335781.html


#3

Thank you very much for your answer but Open Link in Current Window doesn’t work either. :cry:
I’ve sent an email to the Axure Support Team as you said.
Hope they have the answer.