Помощник
|
Редактор |
unnormal
|
Сообщение
#1
|
||
|
|
||
|
|||
Arks |
14.6.2010, 10:36;
Ответить: Arks
Сообщение
#2
|
|
вообще замена тега для элемента с заданным id делается с помощью:
document.getElementById('id').outerHTML = '<внешний тег>'+document.getElementById('id').outerHTML+'</внешний тег>'; Или например по DOM - можно создать новый тег, назначить ему родителя(бывшего родителя старого тега) и потомка - старый тег. А в остальном не очень понял что Вы хотите делать. При выделении текста мышкой делать выделенную часть жирной или что? |
|
|
unnormal
|
Сообщение
#3
|
|
|
|
|
Arks |
14.6.2010, 11:24;
Ответить: Arks
Сообщение
#4
|
|
|
Копипаст с http://www.tigir.com/javascript.htm
Как заменить выделенный текст в TEXTAREA на другой? Как это ни "странно" :-), но реализация ветвится из-за разных методов работы с выделениями в IE и Mozilla/Gecko: IE4+ В Internet Explorer используем объект selection, который представляет текущее выделение и его метод createRange, создающий объект TextRange из текущего выделения. Полученный TextRange объект имеет свойство text (для чтения и записи), которое и дает нам выделенный текст. Т.е. прочитали TextRange.text, сделали изменения и записали назад. См. реальное использование в примере ниже. Mozilla/Gecko Ну, а здесь ситуация выглядит несколько по-другому: для достижения цели используем свойства selectionStart и selectionEnd самого объекта textarea, которые содержат начальную и конечную позицию выделения соответственно. А имея текст и зная в нем начало и конец для замены, мы можем легко заменить выделенный фрагмент на другой используя, например метод "substr()". Пример: function replaceSelectedText(obj,cbFunc) В качестве аргумента ф-ии передается объект textarea и имя вспомогательной функции, которая принимает в качестве аргумента выделенный текст и возвращает новый текст, который заменит выделенный текст. После замены текста курсор устанавливается в конец выделения.{ obj.focus(); if (document.selection) { var s = document.selection.createRange(); if (s.text) { eval("s.text="+cbFunc+"(s.text);"); s.select(); return true; } } else if (typeof(obj.selectionStart)=="number") { if (obj.selectionStart!=obj.selectionEnd) { var start = obj.selectionStart; var end = obj.selectionEnd; eval("var rs = "+cbFunc+"(obj.value.substr(start,end-start));"); obj.value = obj.value.substr(0,start)+rs+obj.value.substr(end); obj.setSelectionRange(end,end); } return true; } return false; } Пример использования: //Определяем вспомогательную ф-ю которая //принимает строку и возвращает её в нижнем регистре function lCase(s){return s.toLowerCase();} //заменяем выделенную строку в нижний регистр replaceSelectedText(document.formName.textareaName,'lCase');
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
ПОДБИРАЮ ПОСТЫ ДЛЯ ГРУПП ВК (РЕДАКТОР ВК) И ДРУГИЕ УСЛУГИ | 0 | robot_yaga2 | 780 | 30.5.2023, 15:52 автор: robot_yaga2 |
|
Требуется редактор на контентные сайты 250руб/час |
0 | Lisel85 | 888 | 1.10.2020, 16:17 автор: Lisel85 |
|
Необходим пишущий редактор для постоянного сотрудничества. | 5 | duoseo | 2909 | 6.7.2020, 19:33 автор: Vreg |
|
Редактор удаленно, постоянная работа | 0 | Cheshire_Cat | 1743 | 28.11.2019, 0:07 автор: Cheshire_Cat |
|
Редактор. Удаленно. 35-50к | 0 | Partnerkin_mw | 1167 | 29.10.2019, 13:19 автор: Partnerkin_mw |
Текстовая версия | Сейчас: 26.4.2024, 2:15 |