reveal-js-base-theme/plugin/postmessage/postmessage.js

43 lines
932 B
JavaScript
Raw Permalink Normal View History

2012-10-31 15:36:26 +01:00
/*
simple postmessage plugin
2012-10-31 15:36:26 +01:00
Useful when a reveal slideshow is inside an iframe.
It allows to call reveal methods from outside.
2012-10-31 15:36:26 +01:00
Example:
var reveal = window.frames[0];
2012-10-31 15:36:26 +01:00
// 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]}), '*');
2012-10-31 15:36:26 +01:00
Add to the slideshow:
2012-10-31 15:36:26 +01:00
dependencies: [
...
{ src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
]
2012-10-31 15:36:26 +01:00
*/
(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);
2012-10-31 15:36:26 +01:00
}());