aboutsummaryrefslogtreecommitdiff
path: root/plugin/postmessage
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2012-11-10 17:15:11 -0500
committerHakim El Hattab <hakim.elhattab@gmail.com>2012-11-10 17:15:11 -0500
commit87591d95d18b9fe215f06791bd639a6ae4839cfd (patch)
tree8f3f99a40f405810deaf5ab3b4117b0b0945be4c /plugin/postmessage
parent42766b1bfac3409eb5ec312e57d007b749edce8b (diff)
downloadfreenode-live-2017-presentation-87591d95d18b9fe215f06791bd639a6ae4839cfd.tar
freenode-live-2017-presentation-87591d95d18b9fe215f06791bd639a6ae4839cfd.tar.gz
cosmetical tweaks to postmessage plugin
Diffstat (limited to 'plugin/postmessage')
-rw-r--r--plugin/postmessage/example.html39
-rw-r--r--plugin/postmessage/iframe_example.html34
-rw-r--r--plugin/postmessage/postmessage.js50
3 files changed, 65 insertions, 58 deletions
diff --git a/plugin/postmessage/example.html b/plugin/postmessage/example.html
new file mode 100644
index 0000000..cc57a7b
--- /dev/null
+++ b/plugin/postmessage/example.html
@@ -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>
diff --git a/plugin/postmessage/iframe_example.html b/plugin/postmessage/iframe_example.html
deleted file mode 100644
index 6e5709d..0000000
--- a/plugin/postmessage/iframe_example.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<html>
-<body>
- <iframe id="reveal" src="reveal.js/index.html" 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>
diff --git a/plugin/postmessage/postmessage.js b/plugin/postmessage/postmessage.js
index 176d230..d0f4140 100644
--- a/plugin/postmessage/postmessage.js
+++ b/plugin/postmessage/postmessage.js
@@ -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);
+
}());