MediaWiki:Common.js
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
/**
* 失传媒体维基 - 快捷分类按钮
* 在编辑页面顶部添加常用分类快捷按钮
*/
$( function() {
// 仅在编辑页面执行
if ( mw.config.get( 'wgAction' ) !== 'edit' ) return;
// 定义快捷分类按钮
var quickCategories = [
// 状态分类
{ label: '丢失', category: '丢失', style: 'background:#ffcccc;' },
{ label: '部分发现', category: '部分发现', style: 'background:#fff3cd;' },
{ label: '发现', category: '发现', style: 'background:#d4edda;' },
// 类型分类(分隔线后)
{ label: '视频', category: '视频' },
{ label: '音频', category: '音频' },
{ label: '图片', category: '图片' },
{ label: '游戏', category: '游戏' },
{ label: '文本', category: '文本' }
];
// 创建按钮容器
var $container = $( '<div>' )
.css( {
'padding': '10px',
'margin-bottom': '15px',
'border': '1px solid #ccc',
'border-radius': '4px',
'background': '#f9f9f9'
} )
.prepend( '<b>快捷分类:</b> ' );
// 生成按钮
quickCategories.forEach( function( item, index ) {
// 在第4个按钮后加分隔线
if ( index === 3 ) {
$container.append( '<span style="margin:0 10px; border-left:1px solid #ccc;"></span>' );
}
var $btn = $( '<button>' )
.text( item.label )
.attr( 'type', 'button' )
.css( {
'margin': '0 5px 5px 0',
'padding': '4px 10px',
'border': '1px solid #999',
'border-radius': '3px',
'cursor': 'pointer',
'font-size': '0.9em'
} )
.css( item.style || {} ) // 应用自定义样式
.on( 'click', function() {
// 获取当前编辑框内容
var textarea = $( '#wpTextbox1' )[0];
var content = textarea.value;
var categoryTag = '[[分类:' + item.category + ']]';
// 检查分类是否已存在
if ( content.indexOf( categoryTag ) === -1 ) {
// 在内容末尾添加分类
if ( !content.endsWith( '\n' ) ) {
content += '\n';
}
content += categoryTag + '\n';
textarea.value = content;
$( this ).css( 'opacity', '0.5' ).text( '已添加: ' + item.label );
} else {
alert( '分类“' + item.category + '”已存在!' );
}
} );
$container.append( $btn );
} );
// 将按钮容器插入到编辑框上方
$container.insertBefore( '#wpTextbox1' );
} );