Skip to content

Commit

Permalink
cosmetical tweaks to postmessage plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
hakimel committed Nov 10, 2012
1 parent 42766b1 commit 87591d9
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 58 deletions.
39 changes: 39 additions & 0 deletions plugin/postmessage/example.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<html>
<body>

<iframe id="reveal" src="../../index.html" style="border: 0;" width="500" height="500"></iframe>

<div>
<input id="back" type="button" value="go back"/>
<input id="ahead" type="button" value="go ahead"/>
<input id="slideto" type="button" value="slideto 2-2"/>
</div>

<script>

(function (){

var back = document.getElementById( 'back' ),
ahead = document.getElementById( 'ahead' ),
slideto = document.getElementById( 'slideto' ),
reveal = window.frames[0];

back.addEventListener( 'click', function () {

reveal.postMessage( JSON.stringify({method: 'prev', args: []}), '*' );
}, false );

ahead.addEventListener( 'click', function (){
reveal.postMessage( JSON.stringify({method: 'next', args: []}), '*' );
}, false );

slideto.addEventListener( 'click', function (){
reveal.postMessage( JSON.stringify({method: 'slide', args: [2,2]}), '*' );
}, false );

}());

</script>

</body>
</html>
34 changes: 0 additions & 34 deletions plugin/postmessage/iframe_example.html

This file was deleted.

50 changes: 26 additions & 24 deletions plugin/postmessage/postmessage.js
Original file line number Diff line number Diff line change
@@ -1,39 +1,41 @@
/*
simple postmessage plugin
Useful when a reveal slideshow is inside an iframe.
It allows to call reveal methods from outside.
simple postmessage plugin
Example:
var reveal = window.frames[0];
Useful when a reveal slideshow is inside an iframe.
It allows to call reveal methods from outside.
// 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]}), '*');
Example:
var reveal = window.frames[0];
Add to the slideshow:
// 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]}), '*');
dependencies: [
...
{ src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
]
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);
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);

}());


Expand Down

0 comments on commit 87591d9

Please sign in to comment.