I have embedded a google presentation inside my web-app, using iframe.
<iframe src="https://docs.google.com/presentation/..." />
And that works and is great, but I am trying to programmatically (with JavaScript) to press next (when I need to go to the next slide). I want to be able to control when next is called based on my logic.
At first I tried doing that using:
let iframe = document.querySelector("iframe")
let iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
// get the next button's div
iframeDoc.querySelector(".punch-viewer-navbar-next").click()
But it failed on just let iframeDoc = iframe.contentDocument || iframe.contentWindow.document; because iframe limits you from accessing the content using JS if it's from another domain (I guess that's what happens in new chrome versions)
So I proxied my site and docs.google behind some port and then did a different iframe
<iframe src="https://localhost:7777/presentation/..." />
So I don't have an issue with making the above code run - but it has no effect - I see not result.
I guess I can continue and understand why div inside iframe click doesn't work (probably security issue), but this already sounds like a too cumbersome solution for what I need.
Do you know of any API or something that google presentation offers to help you do a simple next programmatically?
I haven't seen anything resembling an API, but you can append the page number at the url you request to get a specific slide, for example https://docs.google.com/presentation/.../embed#slide=9 will show the 9th slide. So you can change the iframe src using javascript.
Warning: it re-downloads the whole slideshow every time you change this, so if you can find any other way to do this, it would probably be better.
Unfortunately I don't see a way to get feedback from the iframe on which slide is currently shown, so I would suggest hiding the controls with rm=minimal (https://docs.google.com/presentation/.../embed?rm=minimal#slide=9) and placing a mask over the iframe to stop the user from changing the slide outside your control.
Edit: You can also check this: https://developers.google.com/slides
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With