Вставить текст в текстовую область flex 3

StackOverflow https://stackoverflow.com/questions/1404722

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть текстовое поле и список.Когда пользователь дважды щелкает элемент списка, метка выбранного элемента должна быть вставлена в текстовую область.Когда текст выделен в текстовой области, его следует заменить, в противном случае текст просто нужно вставить в существующий текст с помощью курсора.

Мне удалось получить текст и все такое, я просто не могу вставить его в точку курсора.Кто-нибудь знает, как это сделать?

Это было полезно?

Решение

На самом деле это не JavaScript, а Adobe Flex 3.Хотя спасибо за помощь, это действительно подтолкнуло меня в правильном направлении.Именно так это делается во Flex 3:

var caretStart:int = textArea.selectionBeginIndex;
var caretEnd:int = textArea.selectionEndIndex;
textArea.text = textArea.text.substring(0,caretStart)
              + newText
              + textArea.text.substr(caretEnd);

Другие советы

Принятый ответ отлично работает, если у вас нет существующего HTML-форматирования.В моем случае я вставил в редактор новую кнопку, на которую пользователь мог нажать, чтобы ввести ключевое слово.Я продолжал терять все форматирование HTML, пока не покопался в самом классе и не встал на сторону объекта TextRange:

       public function keyWord_Click(event:Event) : void 
        {

            var caretStart:int = txtEditor.textArea.selectionBeginIndex;
            var caretEnd:int = txtEditor.textArea.selectionEndIndex;
            var newText : String = "[[[KEYWORD]]]";

            var tf:TextRange = new TextRange(txtEditor,true,caretStart,caretEnd);
            tf.text = newText;

        }

Самое приятное в этом подходе то, что вы также можете применить условное форматирование к этому объекту TextRange по мере необходимости.

Вы можете использовать txtarea.SelectionStart и txtarea.selectionEnd для получения позиции выделенного текста.

После этого Вы удаляете текстовый текст и добавляете новый выделенный текст.

Я мало что знаю о Javascript, поэтому написал его для U.

Вы можете выполнить поиск в Google по ключевым словам:"Текстовая область выделенного текста Javascript" "Javascript добавляет текст в нужное положение"

Пример кода:функция insertAtCursor(MyField, myValue) { // Поддержка IE if (document.selection) { MyField.focus();sel = document.selection.createRange();sel.text = Мое значение;} /поддержка MOZILLA/NETSCAPE иначе, если (MyField.SelectionStart || MyField.SelectionStart == '0') { var startPos = Мое поле.SelectionStart;var endPos = Мое поле.selectionEnd;MyField.value = MyField.value.substring(0, начальный код) + myValue + MyField.value.substring(конечный код, MyField.value.длина);} else { MyField.value += Мое значение;}

caretPos = doGetCaretPosition(myField);
alert(caretPos);
setCaretPosition(myField,caretPos-3);

}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top