added a simple postmessage plugin
This commit is contained in:
parent
f51067b00e
commit
a7c3543069
34
plugin/postmessage/iframe_example.html
Normal file
34
plugin/postmessage/iframe_example.html
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<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>
|
40
plugin/postmessage/postmessage.js
Normal file
40
plugin/postmessage/postmessage.js
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
simple postmessage plugin
|
||||||
|
|
||||||
|
Useful when a reveal slideshow is inside an iframe.
|
||||||
|
It allows to call reveal methods from outside.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
var reveal = window.frames[0];
|
||||||
|
|
||||||
|
// 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]}), '*');
|
||||||
|
|
||||||
|
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);
|
||||||
|
}());
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user