diff --git a/plugin/postmessage/iframe_example.html b/plugin/postmessage/iframe_example.html new file mode 100644 index 0000000..6e5709d --- /dev/null +++ b/plugin/postmessage/iframe_example.html @@ -0,0 +1,34 @@ + + + +
+ + + +
+ + + diff --git a/plugin/postmessage/postmessage.js b/plugin/postmessage/postmessage.js new file mode 100644 index 0000000..176d230 --- /dev/null +++ b/plugin/postmessage/postmessage.js @@ -0,0 +1,40 @@ +/* +simple postmessage plugin + +Useful when a reveal slideshow is inside an iframe. +It allows to call reveal methods from outside. + +Example: + var reveal = window.frames[0]; + + // Reveal.prev(); + reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*'); + // Reveal.next(); + reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*'); + // Reveal.slide(2, 2); + reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*'); + +Add to the slideshow: + + dependencies: [ + ... + { src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } } + ] + + +*/ + +(function (){ + +window.addEventListener("message", function (event){ + var data = JSON.parse(event.data), + method = data.method, + args = data.args; + if (Reveal[method]){ + Reveal[method].apply(Reveal, data.args); + } +}, false); +}()); + + +