LLWiki正在建设中,欢迎加入我们!
User:Bhsd/edit.js:修订间差异
跳转到导航
跳转到搜索
删除的内容 添加的内容
小无编辑摘要 |
小无编辑摘要 |
||
| 第12行: | 第12行: | ||
if (['edit', 'submit'].includes( action ) && skin == 'vector') { |
if (['edit', 'submit'].includes( action ) && skin == 'vector') { |
||
// 此处经反复测试无法delegate |
// 此处经反复测试无法delegate |
||
console.log( 'setInterval: 等待WikiEditor的搜索按钮加载完毕' ); |
|||
| ⚫ | |||
const toolbarTimerStart = mw.now(), |
|||
| ⚫ | |||
if ($( '.group-search a' ).length === 0) { return; } |
if ($( '.group-search a' ).length === 0) { return; } |
||
clearInterval( toolbarTimer ); |
clearInterval( toolbarTimer ); |
||
console.log( `End setInterval: WikiEditor的搜索按钮加载完毕,用时 ${mw.now() - toolbarTimerStart} ms` ); |
|||
$( '.group-search a' ).one('click', () => { |
$( '.group-search a' ).one('click', () => { |
||
console.log( 'setInterval: 等待WikiEditor的搜索对话框加载完毕' ); |
|||
| ⚫ | |||
const timerStart = mw.now(), |
|||
| ⚫ | |||
if ($( '#wikieditor-toolbar-replace-replace' ).length === 0) { return; } |
if ($( '#wikieditor-toolbar-replace-replace' ).length === 0) { return; } |
||
clearInterval(timer); |
clearInterval(timer); |
||
console.log( `End setInterval: WikiEditor的搜索对话框加载完毕,用时 ${mw.now() - timerStart} ms` ); |
|||
const ele = $( '<textarea id="wikieditor-toolbar-replace-replace" tabindex="10">' ) |
const ele = $( '<textarea id="wikieditor-toolbar-replace-replace" tabindex="10">' ) |
||
.keydown(e => { |
.keydown(e => { |
||
| 第38行: | 第44行: | ||
(mw.loader.getState( 'ext.gadget.Wikiplus' ) == 'ready' || mw.loader.getState( 'ext.gadget.mobile-Wikiplus' ) == 'ready')) { |
(mw.loader.getState( 'ext.gadget.Wikiplus' ) == 'ready' || mw.loader.getState( 'ext.gadget.mobile-Wikiplus' ) == 'ready')) { |
||
$('body').on('click', '#Wikiplus-Edit-TopBtn, .Wikiplus-Edit-SectionBtn', () => { |
$('body').on('click', '#Wikiplus-Edit-TopBtn, .Wikiplus-Edit-SectionBtn', () => { |
||
console.log( 'setInterval: 等待Wikiplus对话框加载完毕' ); |
|||
| ⚫ | |||
const timerStart = mw.now(), |
|||
| ⚫ | |||
if ($( '#Wikiplus-Quickedit-Jump' ).length === 0) { return; } |
if ($( '#Wikiplus-Quickedit-Jump' ).length === 0) { return; } |
||
clearInterval(timer); |
clearInterval(timer); |
||
console.log( `End setInterval: Wikiplus对话框加载完毕,用时 ${mw.now() - timerStart} ms` ); |
|||
if ($( '#Wikiplus-Quickedit-Replace' ).length) { return; } |
if ($( '#Wikiplus-Quickedit-Replace' ).length) { return; } |
||
$( '<span id="Wikiplus-Quickedit-Replace" class="Wikiplus-Btn">替换</span>' ) |
$( '<span id="Wikiplus-Quickedit-Replace" class="Wikiplus-Btn">替换</span>' ) |
||
| 第59行: | 第68行: | ||
const ptn = $( '#quickEdit-replace-pattern' ).val(), |
const ptn = $( '#quickEdit-replace-pattern' ).val(), |
||
value = $( '#quickEdit-replace-val' ).val(), |
value = $( '#quickEdit-replace-val' ).val(), |
||
isRegex = $('#quickEdit-replace-regex input').prop('checked'); |
isRegex = $('#quickEdit-replace-regex input').prop( 'checked' ); |
||
backup = textarea.val(); |
backup = textarea.val(); |
||
$( '#quickEdit-replace_undoBtn' ).prop('disabled', false); |
$( '#quickEdit-replace_undoBtn' ).prop('disabled', false); |
||
2020年11月19日 (四) 23:41的版本
// 由[[Special:Mypage/common.js]]调用,可以使用ES6语法
"use strict";
$(function() {
const editBox = $('#wpTextbox1'),
btns = $('#wpSaveWidget, #wpPreviewWidget, #wpDiffWidget, #wpTemplateSandboxPreview'),
action = mw.config.get('wgAction'),
contentmodel = mw.config.get( 'wgPageContentModel' ),
skin = mw.config.get('skin'),
ns = mw.config.get( 'wgNamespaceNumber' );
// 修改WikiEditor的替换文本框
if (['edit', 'submit'].includes( action ) && skin == 'vector') {
// 此处经反复测试无法delegate
console.log( 'setInterval: 等待WikiEditor的搜索按钮加载完毕' );
const toolbarTimerStart = mw.now(),
toolbarTimer = setInterval(() => {
if ($( '.group-search a' ).length === 0) { return; }
clearInterval( toolbarTimer );
console.log( `End setInterval: WikiEditor的搜索按钮加载完毕,用时 ${mw.now() - toolbarTimerStart} ms` );
$( '.group-search a' ).one('click', () => {
console.log( 'setInterval: 等待WikiEditor的搜索对话框加载完毕' );
const timerStart = mw.now(),
timer = setInterval(() => {
if ($( '#wikieditor-toolbar-replace-replace' ).length === 0) { return; }
clearInterval(timer);
console.log( `End setInterval: WikiEditor的搜索对话框加载完毕,用时 ${mw.now() - timerStart} ms` );
const ele = $( '<textarea id="wikieditor-toolbar-replace-replace" tabindex="10">' )
.keydown(e => {
if (e.keyCode == '13') {
const text = ele.val(),
before = text.substring(0, ele.prop( 'selectionStart' )),
after = text.substring(ele.prop( 'selectionEnd' ));
ele.val(before + '\n' + after);
}
});
$( 'input#wikieditor-toolbar-replace-replace' ).replaceWith(ele);
}, 100);
});
}, 100);
}
// 引自[[moegirl:User:東東君/js/Wikiplus-replace.js]]
if (action == 'view' && mw.config.get( 'wgIsArticle' ) && mw.config.get( 'wgIsProbablyEditable' ) &&
(mw.loader.getState( 'ext.gadget.Wikiplus' ) == 'ready' || mw.loader.getState( 'ext.gadget.mobile-Wikiplus' ) == 'ready')) {
$('body').on('click', '#Wikiplus-Edit-TopBtn, .Wikiplus-Edit-SectionBtn', () => {
console.log( 'setInterval: 等待Wikiplus对话框加载完毕' );
const timerStart = mw.now(),
timer = setInterval(() => {
if ($( '#Wikiplus-Quickedit-Jump' ).length === 0) { return; }
clearInterval(timer);
console.log( `End setInterval: Wikiplus对话框加载完毕,用时 ${mw.now() - timerStart} ms` );
if ($( '#Wikiplus-Quickedit-Replace' ).length) { return; }
$( '<span id="Wikiplus-Quickedit-Replace" class="Wikiplus-Btn">替换</span>' )
.on('click', () => {
if ($( '.quickEdit-replace' ).length) {
$( '.quickEdit-replace' ).css('display', 'initial');
return;
}
let backup = "";
const textarea = $('#Wikiplus-Quickedit'),
dialog = $('<div class="quickEdit-replace"><label>查找:<input type="text" id="quickEdit-replace-pattern"></label><label>替换:<textarea id="quickEdit-replace-val"></textarea></label><label id="quickEdit-replace-regex"><input type="checkbox">正则</label><button id="quickEdit-replace_replaceBtn">替换</button><button id="quickEdit-replace_undoBtn" disabled="true">撤销</button><button id="quickEdit-replace_hideBtn">关闭</button></div>')
.appendTo('.Wikiplus-InterBox')
.on('click', '#quickEdit-replace_hideBtn', e => {
$( e.delegateTarget ).css('display', 'none');
})
.on('click', '#quickEdit-replace_undoBtn', () => { textarea.val(backup); })
.on('click', '#quickEdit-replace_replaceBtn', () => {
const ptn = $( '#quickEdit-replace-pattern' ).val(),
value = $( '#quickEdit-replace-val' ).val(),
isRegex = $('#quickEdit-replace-regex input').prop( 'checked' );
backup = textarea.val();
$( '#quickEdit-replace_undoBtn' ).prop('disabled', false);
mw.loader.using( 'mediawiki.util' ).then(() => {
const regexp = new RegExp(isRegex ? ptn : mw.util.escapeRegExp(ptn), 'g');
textarea.val( backup.replace(regexp, value) );
});
});
mw.loader.using( 'jquery.ui' ).then(() => { dialog.draggable(); });
}).insertAfter( '#Wikiplus-Quickedit-Jump' );
}, 100);
});
}
/* JavaScript编辑界面按tab键空4格 */
if (contentmodel == 'javascript') {
$('body').on('keydown', '#wpTextbox1, #Wikiplus-Quickedit', function(e) {
if (e.keyCode == 9) {
e.preventDefault();
const text = this.value,
position = this.selectionStart,
left = text.substring(0, position),
right = text.substring( this.selectionEnd );
this.value = left + ' ' + right;
this.selectionStart = this.selectionEnd = position + 4;
}
});
}
// 修改templateSandbox的默认页面
$( 'input[name=wpTemplateSandboxPage]' ).val(function() {
const namespaces = mw.config.get( 'wgFormattedNamespaces' ),
title = mw.config.get('wgTitle');
return $(this).val() || (namespaces[ns] + (ns === 0 ? '' : ':') + title);
});
// 自动替换文本。由于以下代码的奇怪性质,本页面不应频繁修改,至少不能使用移动版皮肤修改
btns.on('click', () => {
if (contentmodel == 'javascript') {
editBox.val(function() { return $(this).val().replace(/\t/g, " "); });
}
if (skin == 'vector' || contentmodel == 'wikitext') { return; }
editBox.val(function() { return $(this).val().replace(/[‘’]/g, "'").replace(/[“”]/g, '"'); });
});
});