Вставить текст до и после выделения в текстовой области с помощью JavaScript - PullRequest
4 голосов
/ 17 января 2011

Как вставить текст до и после выделения в текстовой области с помощью JavaScript? Выделение происходит в поле текстовой области формы HTML

Ответы [ 2 ]

6 голосов
/ 19 апреля 2012

Простой скрипт, который работает в IE, MFF и GC, где myField является ссылкой на объект.Собранный из нескольких скриптов, найденных в сети.

function insertAtCursor(myField, myValueBefore, myValueAfter) {

    if (document.selection) {

        myField.focus();
        document.selection.createRange().text = myValueBefore + document.selection.createRange().text + myValueAfter;


    } else if (myField.selectionStart || myField.selectionStart == '0') {

        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        myField.value = myField.value.substring(0, startPos)+ myValueBefore+ myField.value.substring(startPos, endPos)+ myValueAfter+ myField.value.substring(endPos, myField.value.length);

    } 
}
5 голосов
/ 17 января 2011

Попробуйте выполнить следующее:

var selectionText = yourTextarea.value.substr(yourTextarea.selectionStart, yourTextarea.selectionEnd);
yourTextarea.value = "Text before" + selectionText + "Text after";

Если вы хотите выполнить поиск + заменить, то следующий код поможет (в браузерах, отличных от IE)

var textBeforeSelection = yourTextarea.value.substr(0, yourTextarea.selectionStart);
var textAfterSelection = yourTextarea.value.substr(yourTextarea.selectionEnd, yourTextarea.value.length);
yourTextarea.value = textBeforeSelection + " new selection text " + textAfterSelection;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...