diff --git a/js/reveal.js b/js/reveal.js index fe499ea6..57f0872b 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. diff --git a/plugin/postmessage/example.html b/plugin/postmessage/example.html deleted file mode 100644 index cc57a7bb..00000000 --- a/plugin/postmessage/example.html +++ /dev/null @@ -1,39 +0,0 @@ - -
- - - -