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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
(function() {
    // don't emit events from inside the previews themselves
    if ( window.location.search.match( /receiver/gi ) ) { return; }
 
    var socket = io.connect(window.location.origin);
    var socketId = Math.random().toString().slice(2);
    
    console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
    window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
 
    // Fires when a fragment is shown
    Reveal.addEventListener( 'fragmentshown', function( event ) {
        var fragmentData = {
            fragment : 'next',
            socketId : socketId
        };
        socket.emit('fragmentchanged', fragmentData);
    } );
 
    // Fires when a fragment is hidden
    Reveal.addEventListener( 'fragmenthidden', function( event ) {
        var fragmentData = {
            fragment : 'previous',
            socketId : socketId
        };
        socket.emit('fragmentchanged', fragmentData);
    } );
 
    // Fires when slide is changed
    Reveal.addEventListener( 'slidechanged', function( event ) {
        var nextindexh;
        var nextindexv;
        var slideElement = event.currentSlide;
 
        if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
            nextindexh = event.indexh;
            nextindexv = event.indexv + 1;
        } else {
            nextindexh = event.indexh + 1;
            nextindexv = 0;
        }
 
        var notes = slideElement.querySelector('aside.notes');
        var slideData = {
            notes : notes ? notes.innerHTML : '',
            indexh : event.indexh,
            indexv : event.indexv,
            nextindexh : nextindexh,
            nextindexv : nextindexv,
            socketId : socketId,
            markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
 
        };
 
        socket.emit('slidechanged', slideData);
    } );
}());