16,874
个编辑
LLWiki正在建设中,欢迎加入我们!
小 (Bhsd移动页面User:Bhsd/autocomplete.js至MediaWiki:Gadget-autocomplete-core.js,不留重定向) |
小 |
||
(未显示同一用户的11个中间版本) | |||
//<nowiki>
$(function() {
return;▼
}▼
▲ var editbox = $('#wpTextbox1'),
api = new mw.Api(),
autocomplete = false;
result = null;
if(result = left.match(regexp1)) {
if( /^(.+)#/.test(result[1]) ) {
var section = result[1].match(/^(.+)#(.*)/);
return ['sec', section[1], section[2]];
if( /^(.+):/.test(result[1]) ) { return ['*', result[1]]; }
if( /^:/.test(result[1]) ) { return ['6|14', result[1]]; }
//console.log('Autocompletion begins.');
autocomplete = true;
if(prefix[1]) { updateHints(prefix); }▼
editbox.on('input', function() {
if(!prefix) {
hideHints();
else {
setTimeout(function() {
updateHints(
}, 500);
}
$('#autocompleteHints').remove();
};
var updateHints = function(
var hints;
if( $('#autocompleteHints').length ) {
left = editbox.val().substring(0, position),
right = editbox.val().substring(position);
left = left.replace(regexp1,'[[') + prefix[1] + '#' + ele.text() + ']]';
▲ }
case '828':
left = left.replace(regexp3,'{{#invoke') + ele.text().substring(2) + '}}';
break;
case '274':
left = left.replace(regexp4,'{{#') + ele.text() + '}}';
}
editbox.val(left + right);
editbox.prop('selectionStart', left.length);
editbox.prop('selectionEnd', left.length);
hideHints();
});
if(!prefix[1]) {
hints.html('<span class="error">' + wgUCS("请输入页面部分标题", "請輸入頁面部分標題") + '</span>');
▲ return;
▲ }
api.get({action:'parse', page:prefix[1], prop:'sections', formatversion:2})
.then(function(data) {
var section = data.parse.sections.map((ele) => ele.anchor),
secHints = [],
regexp = new RegExp('^' + prefix[2]);
section.forEach(function(ele) {
if(regexp.test(ele)) { secHints.push(ele); }
});
if(secHints.length === 0) { hints.html('<span class="error">' + wgUCS("该页面没有对应章节", "該頁面沒有對應章節") + '</span>'); }
else { hints.html('<ul><li>' + secHints.join('</li><li>') + '</li></ul>'); }
}, function() {
hints.html('<span class="error">' + wgUCS("没有对应页面", "沒有對應頁面") + '</span>');
}
);
return;
}
};
editbox = $(this);
if(e.keyCode == 9) {
e.preventDefault();
if(prefix && !autocomplete) {
});
});
//</nowiki>
|