@jakabbalint
Based on your example, I would think a simple, straightforward approach would be to use a Master header and footer on each of your pages. But if you want to pursue your approach of a main page with Inline Frame for your content pages, you can trigger events on other pages via global variables and a “repeating dynamic panel function” that constantly checks the value of global variable(s). They key to sharing data across pages is the global variable itself. You can do this without javascript injection. Javascript injection offers a way to programmatically set and get global variable values via javascript if you happen to be doing something in javascript already, or you can find or write a function which can do it faster, as the suggestion from @nkrisc might.
In the demo file below, I show a way to do this using native Axure only. The Page Main has a header, footer, inline frame, and a dynamic panel, named “controlFunction” with two empty states. The Loaded event sets itself to “Next, wrap, repeat every 500 ms” and its Panel State Changed event checks the value of OnLoadVariable in a set of conditional cases. This means that every half second you can get the current values of global variables and do something with them. You can decrease the repeat delay to make it more responsive, but at a cost of processing overhead.
As you inspect the interaction code of “controlFunction” you can see it recognizes several “hash characters” used to signal certain types of functions. The ‘@’ char signifies a new page loaded in the inline frame, '&" signifies a footer button should be clicked, for example, “&1” means “cilck footer button 1”, and ‘!’ signifies a button click counter should be incremented.
So, to remotely trigger an event on the main page from any other page, just set the value of OnLoadVariable, prefaced by one of the special “hash characters” and it will automatically be handled --within 500 ms. Add more cases to “controlFunction” to handle other needs–just remember to reset the global variable used so the case doesn’t repeatedly get called forever.
I don’t think you can get around that when using an inline frame, as it is an effect of loading a new page, as much or more due to the web browser as it is Axure. I suppose you could have two inline frames, same size and location with one in front of the other. Load the “new” page in the frame behind, then bring it to front. That should provide a quick transition visual effect, albeit with a pause for the new page to load enough to avoid the “blank page flash.”
pass clicks.rp (109.7 KB)