Участник:Jack who built the house/copy headings.js

/**
 * Делает так, чтобы:
 * 1) при тройном клике на заголовках страницы и разделов и копировании выделенного не копировался текст
 * «[править | править вики-текст]»;
 * 2) при тройном клике на заголовках разделов и копировании выделенного копировалось
 * <Название страницы>#<Название раздела>.
 * Также работает в режиме предпросмотра, в том числе быстрого. Проверялось в Хроме, и только.
 * Скрипт, реализующий только первую функцию (и без быстрого предпросмотра), —
 * [[Участник:Jack who built the house/copy clean headings.js]].
 */

mw.loader.using(['mediawiki.util', 'user.options']).done(function () {

mw.util.addCSS('\
	.ch-nbsp {\
		height: 0;\
		float: right;\
	}\
	\
	.ch-invisibleText {\
		font-size: 0;\
		color: white;\
		line-height: 0;\
		letter-spacing: 0;\
	}\
');

mw.hook('wikipage.content').add(function () {
	var $nbsp = $('<div>')
		.addClass('ch-helperText ch-nbsp')
		.html('&nbsp;');
	$('#firstHeading').append($nbsp.clone());

	var pagename = mw.config.get('wgPageName').replace(/_/g, ' ');
	var $invisibleText = $('<span>')
		.addClass('ch-helperText ch-invisibleText')
		.text(pagename + '#');

	var headlineNumbersPresent = Boolean(mw.user.options.get('numberheadings'));

	$('.mw-headline').each(function () {
		$headline = $(this);

		// Чтобы не копировалось «[править | править вики-текст]» в заголовках разделов
		$headline.append($nbsp.clone());

		if (headlineNumbersPresent) return;

		// Чтобы добавлялось название страницы + знак решётки к заголовкам разделов
		var $firstVisible = $headline.children(':visible').first();
		var html = $firstVisible.html();
		if (typeof html !== 'undefined') {
			$firstVisible.html(html.replace(/^[\s\uFEFF\xA0]+/, ''));
		}

		$headline.prepend($invisibleText.clone());
	});
});

});

 

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia