How do i pass permissions to inline frame?

hi ,
in chrome to allow video autoplay , or to allow camera and microphone recording now you need to pass directive to the IFRAME .
the generated html should look like this.

<iframe src="https://myframe.com" allow="autoplay;microphone;camera" ></iframe>

i want to pass the allow parameters to an inline frame in axure, how do i go about it?
thanks!
Ariel

There is no “this” there :slight_smile: …Perhaps your example did not get posted for some reason.

The solution will depend on the pages/sites/URLs and what kind of video player and/or embedding technique you are using. In general, you would include “autoplay=true” in the video object declaration. Here is a forum search of “autoplay video” which should help with your first question: Search results for 'autoplay video' - Axure Forums

Also in general, any directives or commands passed to another page are done via URL hashes, for example, appending “&record…” or “?record…” and the syntax will depend on the web application or site you are using. It is also common to control video or stream objects via javascript, and this is possible in Axure via javascript injection. Search that term for more information.

If your inline frame target is a page in your Axure prototype, you can also pass information between pages via global variables. The target page can have a dynamic panel that continuously checks the values of global variables and act accordingly.

If you have a sample .rp file you can post, that will help forum users help you more directly and more quickly.

thank you for responding
the HTML of the iframe should include the directive allow="autoplay;microphone;camera"
this directive has to be part of the HTML, i don’t think it can be passed as a URL parameter.
please see the published example here: https://z2tqfl.axshare.com/#g=1&p=home
see chrome documentation here
https://dev.chromium.org/Home/chromium-security/deprecating-permissions-in-cross-origin-iframes

and the rp file attached .
IFRAME parameters in chrome.rp (50.4 KB)

thank you for helping!
Ariel.

Looks like this is due to a security restriction that Google Chrome implemented a year ago. Perhaps you could request an update to Axure by contacting support@axure.com.

You might be able to peroperly declare your iFrame with javascript injection. I’ve been able to do that with HTML audio and video objects. Try dm’ing forum user sam.hepworth for help with this.

thank you for taking the time and looking into it, and for the guidance. really appreciate it!
Ariel.

@ariel27

I started thinking about this some more and realized I could make use of this feature myself, and I prefer Google Chrome for Axure prototypes.

Loading your target site, https://www.cam-recorder.com/ works as its own page directly in Chrome–the permissions popup shows and Chrome remembers it for subsequent calls and windows in the same session. It does not work if you try to load the page from Axure (see Page 1 of attached .rp file.) However, It does work if you open it in a popup window or new tab from Axure (see Page 2) --so that is one option using native Axure.

I looked into opening and controlling inline frames with javascript injection, and found this thread that shows how to use javascript to open a URL in an inline frame widget, thanks to @nkrisc:
https://forum.axure.com/t/open-page-in-iframe-widget-with-javascript/32824/2?u=mbc66

It turns out it is a simple task to add or change attributes, such as “allow” so I just plugged in your “allow=autoplay;microphone;camera” before opening “https://www.cam-recorder.com/”. You can test this out on Page 3 and see the full solution on Page 4 (at least it works for me on Win10 and Chrome 71.) Take a look at the OnLoad event for the inline frame widget on Page 4.

IFRAME parameters in chrome.rp (93.7 KB)

@mbc66
this is great! thank you for looking into it.
i tried it on my computer, and worked for me on Chrome!
for some reason, when i try page 4 with firefox, i get an error [[object]]
I think its something with jquery, but not sure.
Thank you for looking into this!
Ariel.

Wrap the expression in void(). For example:

javascript:void($('iframe').attr('src','http://www.axure.com'));

Alternatively:

javascript:$('iframe').attr('src','http://www.axure.com');throw new Error();

Either should work,.

1 Like

worked like a charm! thank you!
what a great community !

D’oh! Forgot this is required for any javascript call that changes the page content. I guess Google Chrome (or webkit) ignores/accepts this and Firefox/mozilla does not.