|
| 1 | +// Author: Luke Crouch (groovecoder) |
| 2 | +// Apache License 2.0 |
| 3 | +// https://www.apache.org/licenses/LICENSE-2.0 |
| 4 | + |
| 5 | +// Mostly lifted from https://code.google.com/p/html5slides/ |
| 6 | + |
| 7 | +(function($, deck, undefined) { |
| 8 | + function disableFrame(frame) { |
| 9 | + frame.src = 'about:blank'; |
| 10 | + } |
| 11 | + function disableSlideFrames(slide) { |
| 12 | + var frames = slide.getElementsByTagName('iframe'); |
| 13 | + for (var i = 0, frame; frame = frames[i]; i++) { |
| 14 | + disableFrame(frame); |
| 15 | + } |
| 16 | + } |
| 17 | + function enableFrame(frame) { |
| 18 | + var src = frame._src; |
| 19 | + if (frame.src != src && src != 'about:blank') { |
| 20 | + frame.src = src; |
| 21 | + } |
| 22 | + } |
| 23 | + function enableSlideFrames(slide) { |
| 24 | + var frames = slide.getElementsByTagName('iframe'); |
| 25 | + for (var i = 0, frame; frame = frames[i]; i++) { |
| 26 | + enableFrame(frame); |
| 27 | + } |
| 28 | + } |
| 29 | + // copy original iframe src into _src property |
| 30 | + // then disable them all |
| 31 | + $[deck]('extend', 'iframes', function(){ |
| 32 | + console.log("inside iframes"); |
| 33 | + $('iframe').each(function(i, el){ |
| 34 | + el._src = el.src; |
| 35 | + disableFrame(el); |
| 36 | + }); |
| 37 | + $(document).bind('deck.change', function(event, from, to) { |
| 38 | + if (from == 0) |
| 39 | + return; |
| 40 | + $toSlide = $.deck('getSlide', to); |
| 41 | + enableSlideFrames($toSlide.context); |
| 42 | + $nextSlide = $.deck('getSlide', to+1) |
| 43 | + if ($nextSlide) { |
| 44 | + enableSlideFrames($nextSlide.context); |
| 45 | + } |
| 46 | + }); |
| 47 | + }); |
| 48 | +})(jQuery, 'deck'); |
0 commit comments