From 11ea0aa3e13e665dc882a432381c27898c86e569 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Fri, 18 Apr 2014 13:56:51 +0200 Subject: postmessage plugin is now part of reveal.js core --- js/reveal.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'js') diff --git a/js/reveal.js b/js/reveal.js index fe499ea..57f0872 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -239,7 +239,6 @@ var Reveal = (function(){ } - /** * Loads the dependencies of reveal.js. Dependencies are * defined via the configuration option 'dependencies' @@ -313,6 +312,9 @@ var Reveal = (function(){ // Make sure we've got all the DOM elements we need setupDOM(); + // Listen to messages posted to this window + setupPostMessage(); + // Resets all vertical slides so that only the first is visible resetVerticalSlides(); @@ -551,6 +553,28 @@ var Reveal = (function(){ } + /** + * Registers a listener to postMessage events, this makes it + * possible to call all reveal.js API methods from another + * window. For example: + * + * revealWindow.postMessage( JSON.stringify({ + * method: 'slide', + * args: [ 2 ] + * }), '*' ); + */ + function setupPostMessage() { + + window.addEventListener( 'message', function ( event ) { + var data = JSON.parse( event.data ); + var method = Reveal[data.method]; + if( typeof method === 'function' ) { + method.apply( Reveal, data.args ); + } + }, false); + + } + /** * Applies the configuration settings from the config * object. May be called multiple times. -- cgit v1.2.3