Потребител: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>