Потребител:V111P/replaceSelection.js

от Уикипедия, свободната енциклопедия

Бележка: След съхранението е необходимо да изтриете кеша на браузъра, за да видите промените: Mozilla / Firefox / Safari: натиснете бутона Shift и щракнете върху Презареждане (Reload), или изберете клавишната комбинация Ctrl-Shift-R (Cmd-Shift-R за Apple Mac); IE: натиснете Ctrl и щракнете върху Refresh, или клавишната комбинация CTRL-F5; Konqueror: щракнете върху Презареждане или натиснете F5; Opera: вероятно е необходимо да изчистите кеша през менюто Tools→Preferences.

// <pre><nowiki>
 
// Ползван източник за тази функция: http://bg.wikipedia.org/wiki/МедияУики:Monobook.js
// (код от [[w:ru:MediaWiki:Summary]]), адаптирано вероятно от http://wikipedia.org/skins-1.5/common/wikibits.js
// function insertTags, от своя страна адаптирана от phpBB
 
// funct е функцията, която трябва да бъде извикана за да върне текста, който трябва да замени 
//   маркирания текст или ако няма маркира текст просто да бъде добавен при позицията на курсора
function replaceSelection(funct)
{
       var txt;
       //check_regexp();//Проверяем поддерживаются ли рег. выражения
       document.editform.wpTextbox1.focus();
       var txtarea = document.editform.wpTextbox1;
       if (document.selection  && !is_gecko) { // IE
               txt = document.selection.createRange().text;
               if (txt + " " == " ")  { //Если ничего не выделено
                       var result = eval(funct + "(null);");
                       if (result) {
                           document.selection.createRange().text = result;
                       }
               }
               else {
                       document.selection.createRange().text = eval(funct + "(txt);");
               }
       } else if((txtarea.selectionStart || txtarea.selectionStart == '0')&&(navigator.productSub>20031000)) {
               // Gecko-браузеры старше 10.2003
 
               var startPos = txtarea.selectionStart;
               var endPos = txtarea.selectionEnd;
               var scrollTop=txtarea.scrollTop;
               txt = (txtarea.value).substring(startPos, endPos);
               if (txt + " " == " ")  { //Если ничего не выделено
                       var result = eval(funct + "(null);");
                       if (result) { // startPos трябва да е == на endPos в този случай
                           txtarea.value = txtarea.value.substring(0, startPos) + result
                                     + txtarea.value.substring(endPos, txtarea.value.length);
                       }
               }
               else{
                       txtarea.value = txtarea.value.substring(0, startPos) + eval(funct + "(txt);")
                                     + txtarea.value.substring(endPos, txtarea.value.length);
                       txtarea.focus();
               }
       } else { // Други браузъри : резултата се добавя най-отдолу:
                  var result = eval(funct + "(null);");
                  if (result) {
                      document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + result;
                  }
       }
}
 
 
function all_the_text() { //Обрабатываем текст целиком
        return document.editform.wpTextbox1.value;
}
 
 
function check_regexp() { //Проверяем поддерживаются ли рег. выражения
        if ("код".replace(/д/g, "т") != "кот"){
                alert("Тази функция не може да работи с вашия браузър");
                exit;
        }
        var b_ver = navigator.appVersion.substr(0, 1);
        if (navigator.appName == "Netscape" && b_ver < 5){
                alert("Тази функция не може да работи с браузър Netscape 4.x или по-стари версии");
                exit;
        }
}
 
// </nowiki></pre>