diff options
Diffstat (limited to 'js/youtube.js')
| -rw-r--r-- | js/youtube.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/js/youtube.js b/js/youtube.js new file mode 100644 index 00000000..f64d4874 --- /dev/null +++ b/js/youtube.js @@ -0,0 +1,43 @@ +/* +* youtube +* https://github.com/savetheinternet/Tinyboard/blob/master/js/youtube.js +* +* Don't load the YouTube player unless the video image is clicked. +* This increases performance issues when many videos are embedded on the same page. +* Currently only compatiable with YouTube. +* +* Proof of concept. +* +* Released under the MIT license +* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org> +* +* Usage: +* $config['embedding'] = array(); +* $config['embedding'][0] = array( +* '/^https?:\/\/(\w+\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9\-_]{10,11})(&.+)?$/i', +* '<div class="video-container" data-video="$2"><a href="$0" target="_blank" class="file"><img style="width:360px;height:270px;" src="//img.youtube.com/vi/$2/0.jpg"/></a></div>' +); +* $config['additional_javascript'][] = 'js/jquery.min.js'; +* $config['additional_javascript'][] = 'js/youtube.js'; +* +*/ + + +onready(function(){ + var do_embed_yt = function(tag) { + $('div.video-container a', tag).click(function() { + var videoID = $(this.parentNode).data('video'); + + $(this.parentNode).html('<iframe style="float:left;margin: 10px 20px" type="text/html" width="360" height="270" src="//www.youtube.com/embed/' + videoID + '?autoplay=1" frameborder="0"/>'); + + return false; + }); + }; + do_embed_yt(document); + + // allow to work with auto-reload.js, etc. + $(document).bind('new_post', function(e, post) { + do_embed_yt(post); + }); +}); + |
