diff options
author | Guido Günther <agx@sigxcpu.org> | 2015-01-09 10:16:36 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2015-01-13 07:58:25 +0100 |
commit | 087036ff7eeb173ed65080f1ae562cad2067be4d (patch) | |
tree | 9ea481538e51bd14c0d88ce3fc8daa1bc7d49c84 /reveal.js-2.6.2/plugin/postmessage/postmessage.js |
Diffstat (limited to 'reveal.js-2.6.2/plugin/postmessage/postmessage.js')
-rw-r--r-- | reveal.js-2.6.2/plugin/postmessage/postmessage.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/reveal.js-2.6.2/plugin/postmessage/postmessage.js b/reveal.js-2.6.2/plugin/postmessage/postmessage.js new file mode 100644 index 0000000..d0f4140 --- /dev/null +++ b/reveal.js-2.6.2/plugin/postmessage/postmessage.js @@ -0,0 +1,42 @@ +/* + + 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( typeof Reveal[method] === 'function' ) { + Reveal[method].apply( Reveal, data.args ); + } + }, false); + +}()); + + + |