2
schangxiang@126.com
2024-08-16 b47c50a2a514def7374b32d7194b2c599cba5625
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
 
    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);
 
}());