コンテンツにスキップ

利用者:JuthaDDA/avoidColumnBreakInsideListItems.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

( function () {
	if (
		typeof CSS !== 'undefined' &&
		CSS.supports(
			'(-webkit-column-break-inside: avoid) or (column-break-inside: avoid)'
		)
	) {
		return;
	}

	Array.prototype.slice.call(
		document.querySelectorAll( '.reflist, .columns-list__wrapper' ), 0
	).forEach( function ( wrapper ) {
		var childNodes = wrapper.childNodes;
		var list = childNodes[ 1 ];

		if (
			!( wrapper instanceof HTMLDivElement ) ||
			childNodes.length > 3 ||
			childNodes[ 0 ].textContent !== '\n' ||
			childNodes[ 2 ] ? childNodes[ 2 ].textContent !== '\n' : false ||
			!( list instanceof HTMLOListElement || list instanceof HTMLUListElement )
		) {
			return;
		}

		Array.prototype.slice.call( list.childNodes, 0 ).forEach( function ( li ) {
			if ( !( li instanceof HTMLLIElement ) ) {
				return;
			}

			var inlineBlockDiv = document.createElement( 'div' );
			inlineBlockDiv.style.display = 'inline-block';
			Array.prototype.slice.call(
				li.childNodes, 0
			).forEach( function ( node ) {
				inlineBlockDiv.appendChild( node );
			} );

			var placeHolder = document.createElement( 'div' ); // markerの位置調整用
			placeHolder.innerHTML = ' ';
			placeHolder.style.height = '0';

			li.appendChild( placeHolder );
			li.appendChild( inlineBlockDiv );
			li.style.marginLeft = list.style.marginLeft;
		} );
	} );
}() );