MediaWiki:Gadget-collapserefs.js
Валэктон: Воштэтъёсты адӟон понна, гожтостэс шараям бере, тӥледлы браузердылэсь кешсэ дугдытоно луоз, дыр.
- Firefox/Safari: возе Shift, зӥбыса Выльдоно, яке зӥбе Ctrl-F5 яке Ctrl -R (Mac-ын ⌘-R)
- Google Chrome: зӥбе Ctrl-Shift-R (Mac-ын ⌘-Shift-R).
- Internet Explorer/Edge: возе Ctrl, зӥбыса Выльдоно, яке зӥбе Ctrl-F5.
- Opera: зӥбе Ctrl-F5.
mw.hook('wikipage.content').add(function() {
if (!(mw.config.get('wgIsArticle') ||
mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit') ||
/MSIE [1-6]\./.test(navigator.userAgent) || // makes no sense (max-height)
/(\?|&)printable=yes/.test(document.URL))
{
return;
}
var cookie = document.cookie.match(/(?:^|; )refcoll=(.*?)(?:;|$)/);
var collapseState = cookie && unescape(cookie[1]) == 'min' ? 'min' : 'max';
var foundReflist;
$('#mw-content-text').find('.references-small').each(function (i, el) {
if (el.clientHeight <= (
el.style.maxHeight && el.style.maxHeight.replace(/[^0-9]+/g, '') ||
el.style.height.replace(/[^0-9]+/g, '') || // clientHeight меньше height, если есть
// горизонтальная полоса прокрутки
300) ||
el.clientHeight > el.parentNode.clientHeight) // когда примечания уже обёрнуты в меньший
// по высоте блок (хотя такое оформление спорно)
{
return;
}
foundReflist = true;
if (collapseState == 'min') {
$(el).addClass('references-compact');
}
$('<p class="collapse-refs" />')
.append(
$('<a href="#" class="collapse-refs-link" title="Большие блоки с примечаниями можно уменьшать" />')
.text(collapseState == 'max' ? '↑ Показывать компактно' : '↓ Показывать полностью')
.click(changeState)
)
.insertBefore(el);
});
if (!foundReflist) return;
function changeState(e) {
e.preventDefault();
collapseState = collapseState == 'max' ? 'min' : 'max';
if (collapseState == 'max') { // when maximized
$('.collapse-refs-link')
.text('↑ Показывать компактно')
.parent().next().removeClass('references-compact');
} else { // when minimized
$('.collapse-refs-link')
.text('↓ Показывать полностью')
.parent().next().addClass('references-compact');
}
var cookieDate = new Date($.now() + 1000 * 60 * 60 * 24 * 90).toGMTString();
document.cookie = 'refcoll=' + collapseState + '; expires=' + cookieDate + '; path=/';
}
});