43 lines
		
	
	
	
		
			932 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
	
		
			932 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /* | ||
|  | 
 | ||
|  | 	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( typeof Reveal[method] === 'function' ) { | ||
|  | 			Reveal[method].apply( Reveal, data.args ); | ||
|  | 		} | ||
|  | 	}, false); | ||
|  | 
 | ||
|  | }()); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 |