MediaWiki:Common.js:修订间差异
来自神国反恶俗
跳到导航跳到搜索
无编辑摘要 |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
( function () { | ( function () { | ||
function moveTOC() { | function moveTOC() { | ||
var toc = document.getElementById( | var toc = document.getElementById( "toc" ); | ||
if ( !toc ) { toc = document.querySelector( ".mw-table-of-contents-container" ); } | |||
var sidebar = document.getElementById( "column-one" ); | |||
var sidebar = document.getElementById( | if ( !toc || !sidebar ) { return; } | ||
if ( document.getElementById( "p-toc" ) ) { return; } | |||
var box = document.createElement( "div" ); | |||
if ( !toc || !sidebar | box.className = "portlet"; | ||
box.id = "p-toc"; | |||
var title = document.createElement( "h3" ); | |||
title.textContent = "\u76ee\u5f55"; | |||
var box = document.createElement( | var inner = document.createElement( "div" ); | ||
box.className = | inner.className = "pBody"; | ||
box.id = | |||
var title = document.createElement( | |||
title.textContent = | |||
var inner = document.createElement( | |||
inner.className = | |||
inner.appendChild( toc ); | inner.appendChild( toc ); | ||
box.appendChild( title ); | box.appendChild( title ); | ||
box.appendChild( inner ); | box.appendChild( inner ); | ||
| 第32行: | 第20行: | ||
} | } | ||
function pickLinks( portlet ) { | |||
var out = []; | |||
if ( !portlet ) { return out; } | |||
var links = portlet.querySelectorAll( "ul a" ); | |||
for ( var i = 0; i < links.length; i++ ) { out.push( links[ i ] ); } | |||
return out; | |||
if ( | |||
var | |||
} | } | ||
function makeSticky() { | function makeSticky() { | ||
var old = document.getElementById( "sg-topbar" ); | |||
if ( old ) { old.parentNode.removeChild( old ); } | |||
var leftLinks = pickLinks( document.getElementById( "p-cactions" ) ); | |||
var rightLinks = pickLinks( document.getElementById( "p-personal" ) ); | |||
if ( leftLinks.length === 0 && rightLinks.length === 0 ) { return; } | |||
var bar = document.createElement( "div" ); | |||
var | bar.id = "sg-topbar"; | ||
bar.className = "sg-sticky-bar"; | |||
var left = document.createElement( "div" ); | |||
left.className = "sg-bar-left"; | |||
for ( var i = 0; i < leftLinks.length; i++ ) { | |||
var a = document.createElement( "a" ); | |||
a.href = leftLinks[ i ].href; | |||
a.textContent = leftLinks[ i ].textContent; | |||
left.appendChild( a ); | |||
) | |||
} | } | ||
var | var right = document.createElement( "div" ); | ||
var rightLinks = | right.className = "sg-bar-right"; | ||
for ( var j = 0; j < rightLinks.length; j++ ) { | |||
var b = document.createElement( "a" ); | |||
b.href = rightLinks[ j ].href; | |||
b.textContent = rightLinks[ j ].textContent; | |||
right.appendChild( b ); | |||
} | |||
bar.appendChild( left ); | |||
bar.appendChild( right ); | |||
document.body.appendChild( bar ); | |||
var personal = document.getElementById( "p-personal" ); | |||
var cactions = document.getElementById( "p-cactions" ); | |||
if ( personal ) { personal.style.visibility = "hidden"; } | |||
if ( cactions ) { cactions.style.visibility = "hidden"; } | |||
document.body.className = document.body.className + " sg-sticky-on"; | |||
} | |||
function run() { | |||
moveTOC(); | |||
makeSticky(); | |||
} | |||
if ( document.readyState === "loading" ) { | |||
document.addEventListener( "DOMContentLoaded", run ); | |||
} else { | |||
run(); | |||
} | |||
}() ); | |||
2026年10月11日 (日) 14:45的版本
( function () {
function moveTOC() {
var toc = document.getElementById( "toc" );
if ( !toc ) { toc = document.querySelector( ".mw-table-of-contents-container" ); }
var sidebar = document.getElementById( "column-one" );
if ( !toc || !sidebar ) { return; }
if ( document.getElementById( "p-toc" ) ) { return; }
var box = document.createElement( "div" );
box.className = "portlet";
box.id = "p-toc";
var title = document.createElement( "h3" );
title.textContent = "\u76ee\u5f55";
var inner = document.createElement( "div" );
inner.className = "pBody";
inner.appendChild( toc );
box.appendChild( title );
box.appendChild( inner );
sidebar.appendChild( box );
}
function pickLinks( portlet ) {
var out = [];
if ( !portlet ) { return out; }
var links = portlet.querySelectorAll( "ul a" );
for ( var i = 0; i < links.length; i++ ) { out.push( links[ i ] ); }
return out;
}
function makeSticky() {
var old = document.getElementById( "sg-topbar" );
if ( old ) { old.parentNode.removeChild( old ); }
var leftLinks = pickLinks( document.getElementById( "p-cactions" ) );
var rightLinks = pickLinks( document.getElementById( "p-personal" ) );
if ( leftLinks.length === 0 && rightLinks.length === 0 ) { return; }
var bar = document.createElement( "div" );
bar.id = "sg-topbar";
bar.className = "sg-sticky-bar";
var left = document.createElement( "div" );
left.className = "sg-bar-left";
for ( var i = 0; i < leftLinks.length; i++ ) {
var a = document.createElement( "a" );
a.href = leftLinks[ i ].href;
a.textContent = leftLinks[ i ].textContent;
left.appendChild( a );
}
var right = document.createElement( "div" );
right.className = "sg-bar-right";
for ( var j = 0; j < rightLinks.length; j++ ) {
var b = document.createElement( "a" );
b.href = rightLinks[ j ].href;
b.textContent = rightLinks[ j ].textContent;
right.appendChild( b );
}
bar.appendChild( left );
bar.appendChild( right );
document.body.appendChild( bar );
var personal = document.getElementById( "p-personal" );
var cactions = document.getElementById( "p-cactions" );
if ( personal ) { personal.style.visibility = "hidden"; }
if ( cactions ) { cactions.style.visibility = "hidden"; }
document.body.className = document.body.className + " sg-sticky-on";
}
function run() {
moveTOC();
makeSticky();
}
if ( document.readyState === "loading" ) {
document.addEventListener( "DOMContentLoaded", run );
} else {
run();
}
}() );