added a simple postmessage plugin
This commit is contained in:
		
							
								
								
									
										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); | ||||||
|  | }()); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user