Difference between revisions of "MediaWiki:Copyheadings.js"
(Created page with "/* Делает так, чтобы: 1) при тройном клике на заголовках страницы и разделов и копировании выдел...") |
m |
(One intermediate revision by the same user not shown) | |
(No difference)
|
Latest revision as of 00:45, 2 November 2017
/* Делает так, чтобы:
1) при тройном клике на заголовках страницы и разделов и копировании выделенного не копировался текст «[править | править вики-текст]»;
2) при тройном клике на заголовках разделов и копировании выделенного копировалось <Название страницы>#<Название раздела>.
Также работает в режиме предпросмотра, в том числе быстрого. Проверялось в Хроме, и только.
Скрипт, реализующий только первую функцию (и без быстрого предпросмотра), — Участник:Jack who built the house/copy clean headings.js. */
document.getElementById('firstHeading').innerHTML = document.getElementById('firstHeading').innerHTML + '<div style="height:0; float:right;"> </div>';
var pagename = mw.config.get('wgPageName').replace(/_/g, ' ');
function cleanSectionHeadings() { // чтобы не копировалось «[править | править вики-текст]» в заголовках разделов
var section_headings = document.getElementsByClassName('mw-headline');
for (i = 0; i < section_headings.length; i++) {
section_headings[i].innerHTML = section_headings[i].innerHTML + '<div style="height:0; float:right;"> </div>';
}
}
function fullSectionHeadings() { // чтобы добавлялось название страницы + знак решётки к заголовкам разделов
var section_headings = document.getElementsByClassName('mw-headline');
for (i = 0; i < section_headings.length; i++) {
section_headings[i].innerHTML = '<span style="font-size:0; color:white; line-height:0; letter-spacing:0;">' + pagename + '#</span>' + section_headings[i].innerHTML;
}
}
fullSectionHeadings();
cleanSectionHeadings();
var fullSectionHeadings_timeout, cleanSectionHeadings_timeout;
var wait_PreviewLive_load = setTimeout(function() {
if (document.getElementById('wpPreviewLive')) {
document.getElementById('wpPreviewLive').onclick = function() {
clearTimeout(fullSectionHeadings_timeout);
clearTimeout(cleanSectionHeadings_timeout);
fullSectionHeadings_timeout = setTimeout(fullSectionHeadings, 2000); // 2000 — 2 секунды. Увеличьте, если страница в режиме
cleanSectionHeadings_timeout = setTimeout(cleanSectionHeadings, 2000); // быстрого предпросмотра не успевает загрузиться
};
clearTimeout(wait_PreviewLive_load);
}
}, 1000);