MediaWiki:Common.js:修订间差异
MediaWiki界面页面
更多操作
无编辑摘要 |
小无编辑摘要 |
||
| (未显示同一用户的2个中间版本) | |||
| 第66行: | 第66行: | ||
$parent | $parent | ||
.attr( "data-lnnblog-hidebox-state", state ) | .attr( "data-lnnblog-hidebox-state", state ) | ||
.css( "box-sizing", "content-box" ) | |||
.width( currentWidth ) | .width( currentWidth ) | ||
.height( currentHeight ) | .height( currentHeight ) | ||
| 第80行: | 第81行: | ||
$body.css( "width", "" ) | $body.css( "width", "" ) | ||
$parent | $parent | ||
.css( { width: "", height: "" } ) | .css( { width: "", height: "", "box-sizing": "" } ) | ||
.removeAttr( "data-lnnblog-hidebox-state" ) | .removeAttr( "data-lnnblog-hidebox-state" ) | ||
} | } | ||
| 第98行: | 第99行: | ||
mw.config.get( "wgPageName" ) === "特殊:上传文件" | mw.config.get( "wgPageName" ) === "特殊:上传文件" | ||
) { | ) { | ||
mw.loader.load( "ext.tabberNeue. | mw.loader.load( "ext.tabberNeue.init.styles" ) | ||
mw.loader.load( "ext.tabberNeue" ) | |||
} | } | ||
/* | /* 在侧栏添加“在旧站查看”和“在里站查看”链接 */ | ||
var title = mw.config.get( "wgTitle" ) | var title = mw.config.get( "wgTitle" ) | ||
var ns = mw.config.get( "wgCanonicalNamespace" ) | var ns = mw.config.get( "wgCanonicalNamespace" ) | ||
| 第107行: | 第109行: | ||
var $item = $( '<li class="mw-list-item"><a>在旧站查看</a></li>' ) | var $item = $( '<li class="mw-list-item"><a>在旧站查看</a></li>' ) | ||
$( "a", $item ).attr( "href", "https://www.mywiki.cn/dgck81lnn/index.php/" + mw.util.wikiUrlencode( pagename ) ) | $( "a", $item ).attr( "href", "https://www.mywiki.cn/dgck81lnn/index.php/" + mw.util.wikiUrlencode( pagename ) ) | ||
var $item2 = $( '<li class="mw-list-item"><a> | var $item2 = $( '<li class="mw-list-item"><a>在里站查看</a></li>' ) | ||
$( "a", $item2 ).attr( "href", "https://dgck81lnn.miraheze.org/wiki/" + mw.util.wikiUrlencode( pagename ) ) | $( "a", $item2 ).attr( "href", "https://dgck81lnn.miraheze.org/wiki/" + mw.util.wikiUrlencode( pagename ) ) | ||
$( "#p-tb ul" ).prepend( $item, $item2 ) | $( "#p-tb ul" ).prepend( $item, $item2 ) | ||
} ) | } ) | ||
2026年1月11日 (日) 00:55的最新版本
$( function () {
/* 阻止 iOS Safari 浏览器中文本输入框获得焦点时自动放大页面
* 从 iOS 10 起,viewport meta 标记似乎不会再阻止用户缩放页面 */
try {
if ( navigator.platform.match(/^iP|^Mac/) )
document.querySelector( "meta[name=viewport]" ).content =
"width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.25, maximum-scale=1"
} catch ( err ) {
console.error( err )
}
/* 为 Template:Hidebox 增加动画效果 */
function changeTagName( el, newTagName ) {
var newEl = document.createElement( newTagName )
for ( var i = 0, l = el.attributes.length; i < l; i++ ) {
newEl.attributes.setNamedItem( el.attributes[i].cloneNode() )
}
while ( el.childNodes.length ) {
newEl.appendChild( el.firstChild )
}
if ( el.parentNode ) {
el.parentNode.replaceChild( newEl, el )
}
return newEl
}
$( "#bodyContent" ).on( "click", ".lnnblog-hidebox-heading", function ( event ) {
event.preventDefault()
/** 折叠框的 <summary> 元素。 */
var $this = $( this )
/** 折叠框的 <details> 元素。 */
var $parent = $this.parent()
/** 折叠框内容元素。 */
var $body = $this.nextAll( ".lnnblog-hidebox-body" )
if ( this.tagName.toLowerCase() !== "summary" ) {
$this = $( changeTagName( this, "summary" ) )
$parent = $( changeTagName( $parent[0], "details" ) )
$body.css( "display", "" )
}
var open = $parent.prop( "open" )
/** 当前正在执行的动画动作(expand 或 shrink)。若不在执行动画则为空。 */
var oldState = $parent.attr( "data-lnnblog-hidebox-state" )
/** 现在要执行的动画动作。 */
var state = !open || oldState === "shrink" ? "expand" : "shrink"
// 计算当前的宽高
// 取得的宽度是四舍五入过的;增加 0.5 以避免内容折行
var currentWidth = $parent.width() + 0.5
var currentHeight = $parent.height()
// 打断可能正在进行的动画,然后计算一下动画目标状态的宽高
$parent.stop( true, true ).prop( "open", state === "expand" )
var targetWidth = $parent.width() + 0.5
var targetHeight = $parent.height()
// 锁定内容框宽度为完全展开状态的宽度,以避免内容折行
if (state === "expand")
$body.outerWidth( targetWidth )
else if (oldState !== "expand") // 从完全展开状态折叠
$body.outerWidth( currentWidth )
// 如果不是从完全展开状态折叠,即在展开的半途中折叠,
// 则内容框的宽度还没有清除,无需再次设置。
$parent
.attr( "data-lnnblog-hidebox-state", state )
.css( "box-sizing", "content-box" )
.width( currentWidth )
.height( currentHeight )
// 必须在 open 状态下才能显示出内容框,所以不管展开还是折叠都需要设置成 open
.prop( "open", true )
.animate( {
width: targetWidth,
height: targetHeight
}, {
duration: 250,
done: function () {
if (state === "shrink") $parent.prop( "open", false )
// 清除手动设置的宽高
$body.css( "width", "" )
$parent
.css( { width: "", height: "", "box-sizing": "" } )
.removeAttr( "data-lnnblog-hidebox-state" )
}
} )
} )
$( "#bodyContent" ).on( "keydown", "div.lnnblog-hidebox-heading", function ( event ) {
if ( ( event.code === "Enter" || event.code === "Space" ) && !event.altKey && !event.ctrlKey && !event.metaKey ) {
event.preventDefault()
$( this ).click()
}
} )
/* 在编辑页面时强制加载 Tabber 扩展以使 MediaWiki:Edittools 正常工作 */
var action = mw.config.get( "wgAction" )
if (
action === "edit" || action === "submit" ||
mw.config.get( "wgPageName" ) === "特殊:上传文件"
) {
mw.loader.load( "ext.tabberNeue.init.styles" )
mw.loader.load( "ext.tabberNeue" )
}
/* 在侧栏添加“在旧站查看”和“在里站查看”链接 */
var title = mw.config.get( "wgTitle" )
var ns = mw.config.get( "wgCanonicalNamespace" )
var pagename = ns ? ns + ":" + title : title
var $item = $( '<li class="mw-list-item"><a>在旧站查看</a></li>' )
$( "a", $item ).attr( "href", "https://www.mywiki.cn/dgck81lnn/index.php/" + mw.util.wikiUrlencode( pagename ) )
var $item2 = $( '<li class="mw-list-item"><a>在里站查看</a></li>' )
$( "a", $item2 ).attr( "href", "https://dgck81lnn.miraheze.org/wiki/" + mw.util.wikiUrlencode( pagename ) )
$( "#p-tb ul" ).prepend( $item, $item2 )
} )