「Widget:BilibiliVideo」の版間の差分
1行目: | 1行目: | ||
<noinclude><poem> | <noinclude><poem> | ||
− | + | 名称:Bilibili视频插件 | |
− | + | 作者:加大号的猫 | |
− | + | 修订:[[User:Boxsnake|Boxsnake]] | |
− | + | 重修订:[[User:AnnAngela|AnnAngela]] | |
− | + | H5版再修订:[[User:AnnAngela|AnnAngela]] | |
− | + | 版权协定:MIT | |
− | + | 移动版支持:[[User:Nbdd0121|XYZ指示物]] | |
− | + | 发布日期:2012年6月29日第一版发布,2015年2月6日更新,2016年11月29日更新更多细节,2017年4月10日更新至H5版(感谢众多dalao的debug_(:зゝ∠)_)。 | |
− | + | 发布地址:zh.moegirl.org/Widget:BilibiliVideo && zh.moegirl.org/Template:BilibiliVideo | |
− | + | 注意事项:如有问题,请联系作者。 | |
− | ''' | + | '''本Widget不能单独使用''',请使用{{tl|BilibiliVideo}}! |
</poem></noinclude><includeonly> | </poem></noinclude><includeonly> | ||
<!--{if !isset($wgBilibili) || !$wgBilibili}--> | <!--{if !isset($wgBilibili) || !$wgBilibili}--> | ||
141行目: | 141行目: | ||
iframes: new(window.Map || mw.Map)() | iframes: new(window.Map || mw.Map)() | ||
}; | }; | ||
− | var rememberWH = function rememberWH(ele) { | + | var EPSILON = 2.220446049250313e-16, |
+ | rememberWH = function rememberWH(ele) { | ||
ele.data({ width: ele.width(), height: ele.height() }); | ele.data({ width: ele.width(), height: ele.height() }); | ||
}, | }, | ||
153行目: | 154行目: | ||
recallWH = function recallWH(ele) { | recallWH = function recallWH(ele) { | ||
ele.width(ele.data('width')).height(ele.data('height')); | ele.width(ele.data('width')).height(ele.data('height')); | ||
+ | }, | ||
+ | setMaxHeight = function setMaxHeight(container, target) { | ||
+ | var h = container.outerHeight(true); | ||
+ | var t = 0; | ||
+ | container.children().each(function() { | ||
+ | t += $(this).outerHeight(true); | ||
+ | }); | ||
+ | target.css('max-height', 'calc(100% - ' + (parseInt(t - h + 2 - (Number.EPSILON || EPSILON))) + 'px)'); | ||
}; | }; | ||
$('.bilibili-video-container').addClass('exec').each(function() { | $('.bilibili-video-container').addClass('exec').each(function() { | ||
191行目: | 200行目: | ||
width: width, | width: width, | ||
height: height | height: height | ||
− | }).text(' | + | }).text('正在加载,请稍候……'); |
$.extend(iframe, { | $.extend(iframe, { | ||
execAppend: function execAppend() { | execAppend: function execAppend() { | ||
var iframe = this, | var iframe = this, | ||
− | retryLink = $('<a/>').text(' | + | retryLink = $('<a/>').text('重新加载').addClass('bilibili-iframe-retry-link').on('click', function() { |
var container = $(this).closest('.bilibili-iframe-container'), | var container = $(this).closest('.bilibili-iframe-container'), | ||
iframe = container.find('iframe'), | iframe = container.find('iframe'), | ||
257行目: | 266行目: | ||
error: function(e) { | error: function(e) { | ||
title_text.text(title || 'av' + id + ([0, 1].indexOf(page) !== -1 ? '' : ' (' + page + ')')); | title_text.text(title || 'av' + id + ([0, 1].indexOf(page) !== -1 ? '' : ' (' + page + ')')); | ||
− | if (e && e.responseJSON && e.responseJSON.message && e.responseJSON.message === "Authentication is required for accessing this video.") title_text.parent().append('<span style="display: inline-block;" title=" | + | if (e && e.responseJSON && e.responseJSON.message && e.responseJSON.message === "Authentication is required for accessing this video.") title_text.parent().append('<span style="display: inline-block;" title="“Bilibili采用会员制,大部分投稿视频会员与游客都可以观看,\n 但部分视频在UP主设定下只有会员才可以观看(这些视频常被称为‘只有会员才知道的世界’)。”\n - Bilibili#用户制度 @ ZhMoegirl\n在这种情况下我们无法为您解析视频及其分P标题、分P数量等,也不能强制使用H5播放器。\n但如果您已经登录B站并且设置默认播放器为H5播放器时此处仍会是H5播放器。">(只有会员才知道的世界)<sup>(注)</sup></span>'); |
iframe.attr('src', 'https://www.bilibili.com/blackboard/player.html?aid=' + id + '&page=' + page + '&enable_ssl=1&as_wide=1' + (autoplay === 'true' ? '&autoplay=true' : '') + (isNaN(t) || t <= 0 ? '' : '&t=' + t)); | iframe.attr('src', 'https://www.bilibili.com/blackboard/player.html?aid=' + id + '&page=' + page + '&enable_ssl=1&as_wide=1' + (autoplay === 'true' ? '&autoplay=true' : '') + (isNaN(t) || t <= 0 ? '' : '&t=' + t)); | ||
if (iframeContainer.is(':visible')) iframe.execAppend(); | if (iframeContainer.is(':visible')) iframe.execAppend(); | ||
269行目: | 278行目: | ||
selfbox.toggleClass('onshow'); | selfbox.toggleClass('onshow'); | ||
iframeContainer.toggle(); | iframeContainer.toggle(); | ||
− | if ($(this).text() === ' | + | if ($(this).text() === '显示视频') { |
− | $(this).text(' | + | $(this).text('隐藏视频'); |
if (iframe.data('ready') === true) iframe.execAppend(); | if (iframe.data('ready') === true) iframe.execAppend(); | ||
$(window).resize(); | $(window).resize(); | ||
} else { | } else { | ||
− | $(this).text(' | + | $(this).text('显示视频'); |
selfbox.removeAttr('style'); | selfbox.removeAttr('style'); | ||
} | } | ||
282行目: | 291行目: | ||
if (selfbox.is('.widescreen')) { | if (selfbox.is('.widescreen')) { | ||
selfbox.removeClass('widescreen'); | selfbox.removeClass('widescreen'); | ||
− | $(this).text(' | + | $(this).text('显示宽屏'); |
recallWH(iframeContainer); | recallWH(iframeContainer); | ||
recallWH(iframe); | recallWH(iframe); | ||
288行目: | 297行目: | ||
} else { | } else { | ||
selfbox.addClass('widescreen'); | selfbox.addClass('widescreen'); | ||
− | $(this).text(' | + | $(this).text('退出宽屏'); |
rememberWH(selfbox); | rememberWH(selfbox); | ||
selfbox.css('width', selfbox.parent().width() > Math.min(911, global_element.width()) ? '73%' : '100%'); //可以看见按钮的最小宽度 665 的 1/0.73 倍 | selfbox.css('width', selfbox.parent().width() > Math.min(911, global_element.width()) ? '73%' : '100%'); //可以看见按钮的最小宽度 665 的 1/0.73 倍 | ||
296行目: | 305行目: | ||
setWH(iframe); | setWH(iframe); | ||
setWH(iframeContainer); | setWH(iframeContainer); | ||
+ | setMaxHeight(selfbox, iframeContainer); | ||
} | } | ||
}); | }); | ||
314行目: | 324行目: | ||
selfbox.css('width', selfbox.parent().width() > Math.min(911, global_element.width()) ? '73%' : '100%'); | selfbox.css('width', selfbox.parent().width() > Math.min(911, global_element.width()) ? '73%' : '100%'); | ||
setTureHeight(selfbox); | setTureHeight(selfbox); | ||
+ | setMaxHeight(selfbox, selfbox.find('.bilibili-iframe-container')); | ||
}); | }); | ||
}); | }); | ||
} | } | ||
}); | }); | ||
− | });</script><!--{/if}--> | + | }); |
+ | </script><!--{/if}--> | ||
</includeonly> | </includeonly> |
2017年12月30日 (土) 20:38時点における版
名称:Bilibili视频插件
作者:加大号的猫
修订:Boxsnake
重修订:AnnAngela
H5版再修订:AnnAngela
版权协定:MIT
移动版支持:XYZ指示物
发布日期:2012年6月29日第一版发布,2015年2月6日更新,2016年11月29日更新更多细节,2017年4月10日更新至H5版(感谢众多dalao的debug_(:зゝ∠)_)。
发布地址:zh.moegirl.org/Widget:BilibiliVideo && zh.moegirl.org/Template:BilibiliVideo
注意事项:如有问题,请联系作者。
本Widget不能单独使用,请使用{{BilibiliVideo}}!