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>";
  }
 }  
}
Личные инструменты
 

Шаблон:Ежевика:Рубрики

Навигация