MediaWiki:Summary show overload.js
Вы находитесь на сайте "Архив статей из ЭЕЭ и статей на еврейские темы из Википедии"
(Различия между версиями)
Ariely (Обсуждение | вклад)
(Новая страница: «//Показывает переполнение поля «Описание изменений». //Поле «Описание изменений» принимае…»)
(Новая страница: «//Показывает переполнение поля «Описание изменений». //Поле «Описание изменений» принимае…»)
Текущая версия на 18:11, 28 января 2010
//Показывает переполнение поля «Описание изменений». //Поле «Описание изменений» принимает 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>"; } } }