MediaWiki:Summary show overload.js
Материал из ЕЖЕВИКИ - EJWiki.org - Академической Вики-энциклопедии по еврейским и израильским темам
Перейти к навигацииПерейти к поиску
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
//Показывает переполнение поля «Описание изменений».
//Поле «Описание изменений» принимает 250 латинских символов или 125 русских (каждый русский символ кодируется
//двумя байтами). Скрипт подсчитывает число символов и пишет сообщение, если размер поля был превышен.
//Сделан по аналогии со скриптом [[Участник:Js/summary.js]]
addOnloadHook(summaryPreview)
function summaryPreview(){
var select, inputId, isEdit, maxChars = 250, useMWPreview
if (wgAction == 'edit' || wgAction == 'submit'){
inputId = 'wpSummary'
}else if (wgCanonicalNamespace == 'Special' && wgCanonicalSpecialPageName == 'Movepage'){
inputId = 'wpReason'
}else if (wgAction == 'protect'){
inputId = 'mwProtect-reason'
}else return
var input = document.getElementById(inputId)
if (!input) return
//create counter span
var cnt = document.createElement('span')
cnt.id = 'inputCounter'
cnt.style.marginLeft = '3px'
input.parentNode.insertBefore(cnt, input.nextSibling)
update()
//assign events
addHandler(input, 'change', update)
addHandler(input, 'keyup', update)
addHandler(input, 'mouseup', update)
useMWPreview = false
function update(){
var text = input.value, cutAt, bb
var chars = text.length
bytes = 0
for (var i=0; i<chars; i++){
bytes++
bb = text.charCodeAt(i)
if (bb > 127) {
bytes++
if (bb > 2048) bytes++
}
}
var left;
left=maxChars-bytes;
if (left>=0){
//cnt.innerHTML = left;
cnt.innerHTML = "";
}else{
cnt.innerHTML = "<br><font color=red>Превышена предельная длина строки описания на "+(-left)+" символов.</font>";
}
}
}